我试图通过代码设置“材质”按钮的背景颜色和笔触颜色,但未获得所需的输出,当我尝试执行此操作时,其宽度和高度会更改。请参考以下图片:
上一个
稍后
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="15dp"
android:paddingBottom="10dp"
app:backgroundTint="@color/grey"
app:strokeColor="@color/DarkGrey"
app:strokeWidth="2dp"
app:cornerRadius="5dp"
android:textAllCaps="false"
android:text="@string/approve"
android:textSize="@dimen/approve_btn_text_size"
android:textColor="@color/black" />
该按钮位于weightSum = 1的线性布局中。 我还尝试使用setPadding()和setPaddingRelative()来更改宽度高度,但是它没有任何作用 如果有人知道为什么会发生,可以分享吗?
更新
我成功了,对我来说有效的是将xml文件中的android:inset ***参数设置为0dp,如Google's official document中所述,MaterialButton和AppCompatButton的行为是不同的。
答案 0 :(得分:1)
我成功了,对我来说有效的是将XML文件中的android:inset ***参数设置为0dp
参考:
https://developer.android.com/reference/com/google/android/material/button/MaterialButton
答案 1 :(得分:0)
这取决于您要达到所需效果的API版本。对于API 21及更高版本,材质按钮以不同的方式(本机方式)绘制其角和笔触(最有可能是阴影),而在API 21以下,它会手动添加填充并更改其填充宽度/高度(由于其Java代码),因此会产生意外的结果。