Android paddingHorizontal设置无效的问题

一、代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <androidx.appcompat.widget.AppCompatSeekBar
        android:layout_width="240dp"
        android:layout_height="wrap_content"
        android:background="#F00"
        android:paddingHorizontal="40dp" />

    <androidx.appcompat.widget.AppCompatSeekBar
        android:layout_width="240dp"
        android:layout_height="wrap_content"
        android:background="#F00" />

</LinearLayout>
二、效果
image.png

可以看出上下两个AppCompatSeekBar的内边距是一样的,为什么通过paddingHorizontal设置的值会失效呢?

三、原因

经过排查发现manifest文件里面有一句android:supportsRtl="true",当支持从右往左布局为真时paddingHorizontal的设置是无效的,而且paddingLeft和paddingRight设置的值也是无效的,此时只能通过paddingStart和paddingEnd来设置水平内边距。也可以将android:supportsRtl="true"去掉,默认是不支持从右往左布局的,此时我们就可以用paddingHorizontal来设置想要的水平内边距。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。