Sie möchten Ihrer Android-Anwendung eine Google-Anmeldeschaltfläche hinzufügen. Sie möchten jedoch den Text auf der Google-Anmeldeschaltfläche ändern oder eine benutzerdefinierte Lokalisierung bereitstellen? Sie würden denken, dass das Festlegen android:text
für com.google.android.gms.common.SignInButton
in Ihrer Layoutdatei den Zweck erfüllen würde. Es stellt sich jedoch heraus, dass dieses Attribut für SignInButton
nicht verfügbar ist.
Mit dieser Bibliothek können Sie ganz einfach Text zur Google-Anmeldeschaltfläche hinzufügen, indem Sie das Standardattribut android:text
verwenden. Außerdem können Sie das Schaltflächendesign mit dem Attribut app:isDarkTheme="true"
auf dunkel oder hell einstellen. Dabei werden die Richtlinien von Google zum Erstellen einer Anmeldeschaltfläche befolgt.
Helles Thema (Weiß) | Dunkles Thema (Blau) |
---|---|
![]() | ![]() |
Fügen Sie Ihrer build.gradle
Datei auf app
Modulebene Folgendes hinzu:
dependencies {
implementation ' com.github.shobhitpuri:custom-google-signin-button:2.0.0 '
}
Fügen Sie außerdem Folgendes in der Datei build.gradle
der obersten Ebene hinzu:
allprojects {
repositories {
google()
maven { url " https://jitpack.io " }
mavenCentral()
}
}
In Ihrem XML-Layout muss Folgendes vorhanden sein:
< RelativeLayout
...
xmlns : app = " http://schemas.android.com/apk/res-auto " >
< com .shobhitpuri.custombuttons.GoogleSignInButton
android : layout_width = " wrap_content "
android : layout_height = " wrap_content "
android : layout_centerInParent = " true "
android : text = " @string/google_sign_up "
app : isDarkTheme = " true " />
</ RelativeLayout >
app:isDarkTheme="{Boolean}"
: Zum Wechseln zwischen blauem Design und grauem Weiß für die Schaltfläche. Die Bibliothek übernimmt das Ändern der Textfarbe und Hintergrundfarbe. Es verwaltet auch die Farbänderung beim Drücken oder Klicken einer Taste.android:text="{string}"
: Wie üblich, um den Text auf der Schaltfläche festzulegen. Im Stackoverflow wurden offensichtlich Fragen zu diesem Problem gestellt. Eine davon lautet: Kann ich den Text der Anmeldeschaltfläche bei Google bearbeiten? Viele von ihnen schlagen die Verwendung von „Hacks“ vor, z. B. das Finden der ersten TextView
in der Schaltfläche oder das Suchen einer beliebigen TextView
in der Schaltfläche. Das Problem dabei ist, dass sie möglicherweise nicht mehr funktionieren, wenn Google die Implementierung aktualisiert.
Aus der Dokumentation geht hervor, dass Google die Erstellung einer benutzerdefinierten Schaltfläche empfiehlt, wie unter „Anmeldeschaltfläche anpassen“ beschrieben. Anschließend wird empfohlen, die Branding-Richtlinien zu verwenden, die unter Branding-Richtlinien für die Anmeldung aufgeführt sind. Dazu gehört die Verwendung benutzerdefinierter Symbole und Bilder in der Schaltfläche, das Festlegen der Textgröße, Abstände und andere Gebote und Verbote für das Logo.
Um dem Vorschlag von Google zu folgen, ist einiges an individueller Arbeit erforderlich. Diese kleine 3,93-KB-Bibliothek erledigt das für Sie. Bitte stellen Sie jederzeit Pull-Anfragen, um die Bibliothek zu verbessern. Ich wollte eine wiederverwendbare Lösung erstellen, als ich bei der Implementierung der Anmeldeschaltfläche auf dieses Problem stieß. Ich wollte es nur mit allen teilen.
MIT License
Copyright (c) 2024 Shobhit Puri
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.