Tencent / QMUI_Android

提高 Android UI 开发效率的 UI 库
http://qmuiteam.com/android
Other
14.4k stars 2.67k forks source link

QMUIRoundButton设置为paddingStart/paddingEnd无法获取值 #1148

Open krisez opened 1 year ago

krisez commented 1 year ago

运行环境

具体问题描述

在target>30 QMUIRoundButton的paddingStart获取不了值,其父类QMUIAlphaButton、AppCompatButton、Button就能获取paddingStart的值

val btn1 = view.findViewById<QMUIRoundButton>(R.id.btn_11)
        val btn2 = view.findViewById<QMUIRoundButton>(R.id.btn_22)
        Log.d("Krisez", "onCreateView: ${btn1.paddingLeft}")
        Log.d("Krisez", "onCreateView: ${btn1.paddingStart}")
        Log.d("Krisez", "onCreateView: ${btn2.paddingLeft}")
        Log.d("Krisez", "onCreateView: ${btn2.paddingRight}")

问题截图

image

异常日志(堆栈)

krisez commented 1 year ago
    <style name="QMUI.RoundButton" parent="@style/Button.Compat">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <!--<item name="android:padding">0dp</item>--><!-- 不用 android:padding,而用各个方向分别指定 padding,方便子类覆盖 -->
        <item name="android:paddingLeft">0dp</item>
        <item name="android:paddingRight">0dp</item>
        <item name="android:paddingTop">0dp</item>
        <item name="android:paddingBottom">0dp</item>
        <item name="android:minWidth">0dp</item>
        <item name="android:minHeight">0dp</item>
        <item name="android:singleLine">true</item>
        <item name="android:gravity">center</item>
        <item name="android:ellipsize">end</item>
        <item name="qmui_isRadiusAdjustBounds">true</item>
        <item name="qmui_backgroundColor">?attr/qmui_skin_support_round_btn_bg_color</item>
        <item name="qmui_borderWidth">?attr/qmui_round_btn_border_width</item>
        <item name="qmui_borderColor">?attr/qmui_skin_support_round_btn_border_color</item>
        <item name="android:textColor">?attr/qmui_skin_support_round_btn_text_color</item>
    </style>

经反复尝试,将该style里的paddingL/R删去即可正常使用start/end