Настройка новой кнопки Android MaterialButton для входа в Google - PullRequest
0 голосов
/ 12 декабря 2018

Перед переходом на AndroidX / MaterialComponents я настроил Buttons так:

enter image description here Пользов. Google SignIn button:

 < Button 
    android: id = "@+id/customGoogleSignInBtn"
    style = "@style/SocialLoginBtnStyle"
    android: background = "@color/googleColor"
    android: drawableStart = "@drawable/logo_google_sign_in_btn_normal_46dp"
    android: drawableLeft = "@drawable/logo_google_sign_in_btn_normal_46dp"
    android: foreground = "?attr/selectableItemBackground"
    android: paddingStart = "1dp"
    android: paddingLeft = "1dp"
    android: paddingEnd = "1dp"
    android: paddingRight = "1dp"
    android: text = "@string/google_sign_in"
    android: textStyle = "bold" /  >

После перехода на новый MaterialComponents я не смог настроить MaterialButton, чтобы он выглядел так же.

Конкретная проблема, с которой я сталкиваюсь, заключается в том, что я не могу установить значок Google, а также левый отступ по умолчанию слишком много.

enter image description here

<com.google.android.material.button.MaterialButton
    style="@style/Widget.MaterialComponents.Button.Icon"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="24dp"
    android:layout_marginRight="24dp"
    app:iconTintMode="src_atop"
    app:icon="@drawable/logo_google_sign_in_btn_normal_46dp"
    android:text="@string/google_sign_in"
    android:textAllCaps="false"
    app:backgroundTint="@color/googleColor"
    app:iconPadding="0dp" />

Как мне это настроить?Не могу найти много помощи для MaterialButton.

Ответы [ 5 ]

0 голосов
/ 13 февраля 2019

Используйте этот значок и выйдите из оттенка, чтобы показать реальный цвет

  app:icon="@drawable/ic_google"
  app:iconTint="@null

Пример

<Button
  android:id="@+id/idGoogle"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  app:icon="@drawable/ic_google"
  app:iconTint="@null"/>

значок с реальным цветом показывает черный фон

0 голосов
/ 12 декабря 2018

Вот альтернативный способ добавить кнопку Google SignIn.

Добавить Gradle:

implementation 'com.google.android.gms:play-services-auth:15.0.1'

Добавить кнопку в XML:

<com.google.android.gms.common.SignInButton
            android:id="@+id/sign_in_button"
            android:layout_marginTop="10dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:buttonSize="1"/>

Это будет выглядеть примерно так:
enter image description here

0 голосов
/ 12 декабря 2018

В итоге я унаследовал от androidx.appcompat.widget.AppCompatButton, а не от Button.

 <androidx.appcompat.widget.AppCompatButton
            android:id="@+id/customGoogleSignInBtn"
            style="@style/SocialLoginBtnStyle"
            android:background="@color/googleColor"
            android:drawableStart="@drawable/logo_google_sign_in_btn_normal_46dp"
            android:drawableLeft="@drawable/logo_google_sign_in_btn_normal_46dp"
            android:foreground="?attr/selectableItemBackground"
            android:paddingStart="1dp"
            android:paddingLeft="1dp"
            android:paddingEnd="1dp"
            android:paddingRight="1dp"
            android:text="@string/google_sign_in"
            android:textStyle="bold" />
0 голосов
/ 12 декабря 2018

Я попробовал то же самое, и почему-то студия android не распознала мою иконку и не показала белое изображение так же, как ваше.Что я сделал, так это добавил изображение с изображения из andorid studio, как показано ниже:

Right click drawable -> new -> Image Assets -> select icon type as action bar and tabs icon -> asset type to image and select your image file.

Теперь добавьте это как иконку к кнопке вашего материала, как показано ниже

app:icon="@drawable/ic_close"
app:iconSize="28dp"

Что касается более левого отступа, этоИз-за стиля, проверьте изображение ниже

enter image description here enter image description here

Чтобы удалить это заполнение, удалите стиль кнопки и установите paddingLeft значение в xml

android:paddingLeft="2dp"
0 голосов
/ 12 декабря 2018

сначала вы используете библиотеку MaterialButton, чтобы получить кнопку входа в Google?Если да, я предлагаю вам изменить версию библиотеки на самую новую.

Или почему бы вместо этого не использовать библиотеку Shobitpuri?Чтобы добавить библиотеку, если вы используете Android 3+, то вместо этого используйте компиляцию, используйте «Вместо реализации».

Implementation 'com.shobhitpuri.custombuttons:google-signin:1.0.0'

А для файла XML:

<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" />

Вы можете увидеть ожидаемыйрезультат здесь CustomGoogleSignInButtonThemeDarkShobitpuri

...