drawableLeft / Right等不适用于Theme.MaterialComponents

时间:2019-09-24 15:29:56

标签: android material-design android-button material-components-android material-components

在为活动Theme.MaterialComponents....使用主题时,如果我想通过按钮使用drawableLeft/Right等,则不会显示它们。但是,如果我使用主题Base.Theme.AppCompat,它们将按预期工作。 这是按钮:

       <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Test Button"
            android:drawableLeft="@drawable/ic_envelope"/>

这是主题Base.Theme.MaterialComponents的外观 enter image description here

这是Base.Theme.AppCompat enter image description here

如何使drawableLeftBase.Theme.MaterialComponents主题兼容?

1 个答案:

答案 0 :(得分:2)

只需将MaterialButton app:icon 属性一起使用:

<com.google.android.material.button.MaterialButton
      style="@style/Widget.MaterialComponents.Button.OutlinedButton.Icon"
      app:icon="@drawable/ic_add_24px"
      ../> 

Screenshot of an outlined button with an icon

<com.google.android.material.button.MaterialButton
    style="@style/Widget.MaterialComponents.Button.Icon"
    app:icon="@drawable/ic_add_24px"
    ../>

Screenshot of a filled button with an icon

<com.google.android.material.button.MaterialButton
    style="@style/Widget.MaterialComponents.Button.TextButton.Icon"
    app:icon="@drawable/ic_add_24px"
    ../>

Screenshot of a borderless button with an icon

使用 app:iconGravity 来配置start|end|textStart|textEnd

<com.google.android.material.button.MaterialButton
    app:iconGravity="end"
    ../>

enter image description here