Man*_*Hai 2 xml android colors button android-button
我试图在Android 8中使用Shape Drawable(在drawable中创建button_start.xml)设置按钮的背景颜色和边框颜色,但它似乎不起作用。
简短回答:。
您不需要定义背景形状,只需使用 aMaterialButton和shapeAppearanceOverlay属性:
<com.google.android.material.button.MaterialButton
android:layout_width="100dp"
android:layout_height="100dp"
style="@style/Widget.MaterialComponents.Button"
app:backgroundTint="@color/...."
app:strokeColor="@color/...."
app:strokeWidth="5dp"
android:padding="0dp"
android:insetLeft="0dp"
android:insetTop="0dp"
android:insetRight="0dp"
android:insetBottom="0dp"
android:text="BUTTON"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.MyApp.Button.Circle"
/>
Run Code Online (Sandbox Code Playgroud)
和:
<style name="ShapeAppearanceOverlay.MyApp.Button.Circle" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
Run Code Online (Sandbox Code Playgroud)
长答案:
如果你想使用背景形状,你必须添加app:backgroundTint="@null".
就像是:
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/shape_oval"
app:backgroundTint="@null"
Run Code Online (Sandbox Code Playgroud)
使用材质组件主题Button在运行时被替换为MaterialButton使用自己MaterialShapeDrawable作为背景的主题。您可以定义自定义背景,但为了避免自定义背景没有着色,您必须添加app:backgroundTint="@null".
这两个解决方案并不等效。
使用自定义时,不会使用android:background默认值MaterialShapeDrawable,并且不会设置某些功能,例如笔划、形状外观、波纹(因为它们与 相关MaterialShapeDrawable)。您必须向他们提供您的自定义背景。
| 归档时间: |
|
| 查看次数: |
1382 次 |
| 最近记录: |