Android视图的setPadding()与setPaddingRelative()的区别

50
基于 Android 文档,它并没有给出太多的解释。那么,setPadding()setPaddingRelative() 有什么区别?
1个回答

69

setPaddingRelative中包含以下代码:

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

当你使用setPaddingRelative设置padding时,它会根据用户的布局方向改变左右padding的值。


48
天啊,他们给那个起了一个误导性的名称。我原以为意思是“相对于当前值调整填充”,所以setPaddingRelative(0, 10, 5, 0)会增加顶部填充10个单位和右侧填充5个单位。有时候我真的很想有这样的函数... - dimsuz
ViewCompat#setPaddingRelative可以自动调用setPaddingRelative(如果支持RTL),或者setPadding(即pre-API 17)(如果您关心这种事情)。 - Vasiliy Kulakov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接