[Android的Material Button大小正在重置

问题描述 投票:0回答:1

我正在尝试通过代码设置“材质”按钮的背景颜色和笔触颜色,但未获得所需的输出,当我尝试执行此操作时,其宽度和高度会更改。请参考下图:

上一个

稍后

<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" />

该按钮位于weightsSum = 1的线性布局内。我还尝试使用setPadding()和setPaddingRelative()来更改宽度高度,但是它没有任何作用如果有人知道为什么会发生,可以分享吗?

更新

我知道了,对我有用的是将xml文件中的android:inset ***参数设置为0dp,如Google's official document中提到的MaterialButton和AppCompatButton行为不同。

android material-design android-button
1个回答
0
投票

这取决于您要达到所需效果的API版本。对于API 21及更高版本,material按钮以不同的方式(本机方式)绘制其角和笔触(最可能是shadow),而在API 21以下,则其手动添加填充,更改其宽度/高度由于其Java代码,因此会产生意外的结果。

© www.soinside.com 2019 - 2024. All rights reserved.