Jetpack 带来的一个新控件
使用方法:
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginTop="10dp"
android:layout_marginRight="16dp"
android:backgroundTint="@color/main_color_grey"
android:clickable="false"
android:includeFontPadding="false"
android:orientation="vertical"
android:stateListAnimator="@null"
android:text="@{feedTag}"
android:textColor="@color/black"
android:textSize="10sp"
android:visibility="@{TextUtils.isEmpty(feedTag)?View.GONE:View.VISIBLE}"
app:cornerRadius="15dp"
app:icon="@drawable/icon_tag"
app:iconGravity="textStart"
app:iconPadding="4dp"
app:iconSize="12dp"
app:iconTintMode="multiply" />
<!-- app:iconTintMode="multiply" 这个属性会影响到 icon 的着色-->
<!-- android:stateListAnimator="@null" 这个属性会影响 外观阴影-->
还需要在 styles中自定义属性
<!--自定义 MaterialButton-->
<style name="materialButton" parent="Widget.MaterialComponents.Button">
<item name="android:paddingLeft">8dp</item>
<item name="android:paddingRight">8dp</item>
<item name="android:paddingTop">4dp</item>
<item name="android:paddingBottom">4dp</item>
<item name="android:inset">0dp</item>
<item name="android:insetLeft">0dp</item>
<item name="android:insetRight">0dp</item>
<item name="android:insetTop">0dp</item>
<item name="android:insetBottom">0dp</item>
<item name="android:minWidth">0dp</item>
<item name="android:minHeight">0dp</item>
<item name="elevation">0dp</item>
</style>
在 theme中引入 MaterialButton,
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="materialButtonStyle">@style/materialButton</item>
</style>