оттягиваемое начало не работает с кнопкой материала - PullRequest
1 голос
/ 22 апреля 2020

Вот кнопка:

    <Button
    android:id="@+id/btn_choose_photo"
    style="@style/Widget.MaterialComponents.Button.TextButton.Dialog"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:drawableStart="@drawable/ic_camera"
    android:drawablePadding="8dp"
    android:text="@string/image_picker_dialog_choose_image"
    android:textAlignment="textStart" />

Я использую темы материала, так что это будет раздуто в кнопку материала. DrawableStart вообще не действует, однако drawableEnd, bottom и top работают нормально, когда я сделать кнопку тег текстовым представлением, drawableStart работает Это похоже на ошибку или, может быть, я что-то упустил?

Редактировать: Моя тема приложения выглядит следующим образом:

 <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <!---colors-->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryVariant">@color/colorPrimaryVariant</item>
    <item name="colorPrimaryDark">@color/colorPrimaryVariant</item>

    <item name="colorSecondary">@color/colorSecondary</item>
    <item name="colorSecondaryVariant">@color/colorSecondaryVariant</item>
    <item name="colorAccent">@color/colorSecondary</item>

    <!--
    <item name="android:colorBackground">@color/colorBackground</item>
    -->

    <!--components-->
    <item name="textInputStyle">@style/text_input_layout_style</item>
    <item name="bottomSheetDialogTheme">@style/bottom_sheet_dialog_theme</item>

    <item name="spinnerStyle">@style/spinner_style</item>
    <item name="android:spinnerStyle">@style/spinner_style</item>

    <item name="android:toolbarStyle">@style/toolbar_style</item>
    <item name="toolbarStyle">@style/toolbar_style</item>

    <item name="actionOverflowButtonStyle">@style/overflow_button_style</item>
    <item name="android:actionOverflowButtonStyle">@style/overflow_button_style</item>

</style>

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Вы должны использовать значок app: следующим образом:

В макете:

<Button
   ...
   app:icon="@drawable/ic_camera"
   style="@style/Widget.MaterialComponents.Button.TextButton.Dialog"
/>

Отображается в начале, перед текстовой меткой. Вы можете изменить значок тяжести, оттенка или размера.

Для получения дополнительной информации

0 голосов
/ 22 апреля 2020

Использование

android:drawableLeft

решит проблему, но не обеспечит вам поддержку RTL (справа налево). Если ваш конечный пользователь использует другой язык, следующий за RTL, то ваш Button не будет его поддерживать.

Управляете ли вы свойством Button в Деятельности или Фрагменте, если говорить технически,

android:drawableStart

должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...