android - 可绘制开始不适用于 Material 按钮

标签 android material-design

这是按钮:

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

我正在使用 Material 主题,所以这将被膨胀成一个 Material 按钮
drawableStart 完全没有效果,但是 drawableEnd、bottom 和 top 工作得很好
当我将按钮标签设为 TextView 时,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>

最佳答案

你应该像这样使用 app:icon:
在布局中:

<Button
   ...
   app:icon="@drawable/ic_camera"
   style="@style/Widget.MaterialComponents.Button.TextButton"
/>
它显示在开始处,在文本标签之前。您可以更改图标的重心、色调或大小。
更多information

关于android - 可绘制开始不适用于 Material 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61353353/

相关文章:

android - CardView 里面的 CardView 没有阴影

android - 二维码扫描仪

java - 创建 Activity 时未调用静态初始值设定项

android - 如何在 Flutter 中使用 Dimen?

android - 在新的 Android 应用程序上使用基于微调器的时间选择器?

未显示 CardView 中 View 的 Android 高度

android - 使用 ionic 框架从手机摄像头流式传输视频

android - java.lang.ClassCastException : java. lang.Object[] 无法转换为

android:elevation 只有底面有阴影效果,如何让阴影效果显示在顶面?

java - 以动态和编程方式添加定义的 TextInputLayout