Центрируйте текст с помощью значка в TextButton

#android #xml #android-layout #material-design

#Android #xml #android-макет #материал-дизайн

Вопрос:

Ну, вопрос, вероятно, тупой, но я не могу его понять. Как я могу центрировать эту кнопку? Пробовал гравитацию и отступы, но безуспешно

введите описание изображения здесь

Стиль кнопки:

  <style name="Theme.Base.Jabotmobile.TextBT"
            parent="Widget.MaterialComponents.Button.TextButton">
            <item name="icon">@drawable/ic_baseline_add_24</item>
            <item name="iconPadding">4dp</item>
            <item name="android:textSize">14sp</item>
            <item name="fontFamily">@font/open_sans_regular</item>
            <item name="android:maxLines">1</item>
            <item name="android:padding">0dp</item>
            <item name="textAllCaps">false</item>
            <item name="android:layout_gravity">center_vertical</item>
            <item name="iconGravity">start</item>
        </style>
  

Кнопка в макете:

 <Button
            android:id="@ id/cat_req_BT1"
            style="@style/Theme.JaBotMobile.TextBT"
            android:layout_width="155dp"
            android:layout_height="42dp"
            android:layout_marginStart="18dp"
            android:layout_marginTop="16dp"
            android:text="@string/category_req"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/textInputLayout4" />
  

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

1. @Onik ну, я думал, что здесь это не имеет значения, но теперь это добавлено

2. В B4 импорт стиля не ошибочен, я использую базовый тег, а затем расширяю его для разных API

3. Вы хотите центрировать кнопку в родительском макете?

Ответ №1:

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

     app:layout_constraintEnd_toEndOf="parent"
  

PS

Теперь я понимаю проблему, в основном вы хотите центрировать элементы кнопок (значок и текст) по вертикали. К сожалению, у меня нет решения для этого случая, вместо использования style вы можете создать пользовательский компонент view, с помощью пользовательского компонента view вы можете иметь больше гибкости для настройки.

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

1. Можете ли вы, пожалуйста, добавить весь XML-файл?

2. Это довольно долго, но вот вы здесь pastebin.com/miW7fWYP Пуговицы внизу

3. В принципе, ваш дизайн выглядит так, я не мог понять, как именно вы хотите выровнять центр кнопки ibb.co/gvMRsvk , чтобы поддержать вашу цель, возможно ли предоставить что-то вроде изображения, может быть?

4. ibb.co/KjBvcK7 Ну, это выглядит примерно так, и я хотел, чтобы кнопка немного поднялась или текст был ниже. Это не очень важно, но мне нравится, когда вещи размещены эстетически.

5. Теперь я понимаю проблему, но, к сожалению, у меня нет решения для этого случая, но я предлагаю вам создать пользовательский вид, чтобы вы могли иметь полную гибкость, чтобы сделать все так, как вы хотите.