Android 视图 setPadding() 与 setPaddingRelative()

Posted

技术标签:

【中文标题】Android 视图 setPadding() 与 setPaddingRelative()【英文标题】:Android View setPadding() vs setPaddingRelative() 【发布时间】:2013-03-01 01:16:27 【问题描述】:

基于android document 不做过多解释,setPadding()setPaddingRelative() 有什么区别?

【问题讨论】:

【参考方案1】:

setPaddingRelative 里面有这个代码:

switch(getResolvedLayoutDirection()) 
        case LAYOUT_DIRECTION_RTL:
            setPadding(end, top, start, bottom);
            break;
        case LAYOUT_DIRECTION_LTR:
        default:
            setPadding(start, top, end, bottom);

因此,当您使用 setPaddingRelative 设置填充时,它会根据用户的布局方向更改左右填充值。

【讨论】:

上帝,他们为此选择了一个误导性的名称。我虽然这意味着“相对于当前值调整填充”,所以 setPaddingRelative(0, 10, 5, 0) 会将顶部填充增加 10,右侧填充增加 5。有时我真的很想念这样的功能...... ViewCompat#setPaddingRelative 如果支持 RTL,则可以自动调用 setPaddingRelative,如果不支持(即 API 17 之前),则可以自动调用 setPadding,如果您关心这类事情

以上是关于Android 视图 setPadding() 与 setPaddingRelative()的主要内容,如果未能解决你的问题,请参考以下文章

Android填充问题

以编程方式对齐 Android 元素

android中如何间隔控件

android view怎么设置位置

使用 setPadding 提供填充,使用 dip 单位而不是 px 单位

setPadding()在动态创建CardView时不起作用