hum*_*zed 7 android material-design material-components material-components-android
我在com.google.android.material:materialandroid x上使用了新的材质组件,但无法为按钮设置自定义背景。
我知道我可以app:backgroundTint用来改变颜色
但是默认背景有一些我想消除的填充,以及android:background用于设置自己的背景的旧方法,但是这种方法不再起作用。
我看了看文档,但是找不到关于此更改的任何提及。
Gab*_*tti 16
在材料零件的图书馆,MaterialButton有一个默认的风格,insetBottom并insetTop与值6dp。
您可以使用以下方法更改它:
<com.google.android.material.button.MaterialButton
android:insetTop="0dp"
android:insetBottom="0dp"
../>
Run Code Online (Sandbox Code Playgroud)
如果要更改背景颜色,可以使用该app:backgroundTint属性,也可以覆盖默认样式的某些主题属性,然后可以使用新materialThemeOverlay属性。
在您的情况下,您可以执行以下操作:
<style name="MtButtonStyle"
parent="Widget.MaterialComponents.Button">
<item name=“materialThemeOverlay”>@style/GreenButtonThemeOverlay</item>
</style>
<style name="GreenButtonThemeOverlay">
<item name="colorPrimary">@color/green</item>
</style>
Run Code Online (Sandbox Code Playgroud)
最后从版本开始,1.2.0-alpha06您可以android:background在MaterialButton.
<MaterialButton
app:backgroundTint="@null"
android:background="@drawable/button_drawable"
... />
Run Code Online (Sandbox Code Playgroud)
小智 10
如果你想使用渐变绘制作为MaterialButton背景,
将您的设置MaterialButton如下:
<com.google.android.material.button.MaterialButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
app:backgroundTint="@null"
android:background="@drawable/group_47"
app:layout_constraintEnd_toEndOf="@+id/input_password"
app:layout_constraintStart_toStartOf="@+id/input_password"
app:layout_constraintTop_toBottomOf="@+id/input_password" />
Run Code Online (Sandbox Code Playgroud)
小智 9
如果您想保留您的
android:background="@drawable/button_background"
Run Code Online (Sandbox Code Playgroud)
并且让MaterialButton尊重它,那么你必须设置
app:backgroundTint="@null"
app:backgroundTintMode="add" // it doesn't matter the value, but it must be set
Run Code Online (Sandbox Code Playgroud)
请注意,您也可以使用app:background代替,尽管我注意到了足够多的重大更改,因此我仍然更喜欢上面的方法。
不要使用该
android:background属性。MaterialButton管理自己的背景可绘制对象,并且设置新的背景方法MaterialButton不能再保证其引入的新属性将正常运行。如果更改了默认背景,MaterialButton则不能保证行为明确。
但是,GitHub自述文件指出:
注意:
MaterialButton在视觉上与Button和有所不同AppCompatButton。主要区别之一是在左侧和右侧AppCompatButton都有4dp插图,而MaterialButton没有。
这仅提及左/右插图,但是自述文件的“属性”部分显示了所有四个插图均受支持:
因此,您可以将以下属性添加到<MaterialButton>标签中:
android:insetTop="0dp"
android:insetBottom="0dp"
Run Code Online (Sandbox Code Playgroud)
查看https://medium.com/@velmm/material-button-in-android-e4391a243b17我发现app:backgroundTint(和app:backgroundTintMode)有效。它会更改颜色,但不会更改可绘制选择器。
也可以替换<Button使用<android.widget.Button。
| 归档时间: |
|
| 查看次数: |
3648 次 |
| 最近记录: |