Центрировать текст при наличии объекта ViewStart в кнопке

#android #android-layout

#Android #android-макет

Вопрос:

У меня есть кнопка входа в Google в моей деятельности. У меня есть логотип Google в позиции ViewStart на кнопке. При его наличии текст с нормальным центром смещается от центра.

Кнопка xml:

 <Button
        android:id="@ id/signInBtn"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_marginStart="26dp"
        android:layout_marginEnd="26dp"
        android:layout_marginBottom="108dp"
        android:background="@drawable/roung_bg"
        android:drawableStart="@drawable/ic_google_logo"
        android:elevation="@dimen/elevation"
        android:text="@string/logIn"
        android:textAlignment="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
  

Результат:
Где текст смещен от центра

Что меня не устраивает, и я хочу центрировать текст «ВОЙТИ» в макет. Как я могу этого добиться?

Комментарии:

1. Вы пробовали заполнение или поля и стиль текста?

Ответ №1:

Вы не должны использовать drawbleStart, используйте два вида, чтобы изменить размер логотипа Google или положение текста, образец

 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@color/colorAccent"
    android:layout_marginStart="26dp"
    android:layout_marginEnd="26dp"
    android:layout_marginBottom="108dp">
    <TextView
        android:id="@ id/signInBtn"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#FFFFFF"
        android:text="LOG IN"
        android:textColor="#000000"
        android:textAlignment="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:gravity="center"
        android:layout_centerInParent="true"/>
    <ImageView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentStart="true"
        android:background="@drawable/ic_google"
        android:layout_centerVertical="true"/>
    
</RelativeLayout>
  

Ответ №2:

Создайте относительный макет, добавьте кнопку с шириной match_parent и добавьте логотип Google в качестве изображения в макет, теперь добавьте android:textAlignment="center" кнопку и выровняйте логотип слева в макете

теперь вы можете легко выровнять кнопку, а также изображение