gpt4 book ai didi

android - 什么是 paddingStart 和 paddingEnd?

转载 作者:IT老高 更新时间:2023-10-28 23:40:55 31 4
gpt4 key购买 nike

自从我在编写 xml 布局文件时,Eclipse 的自动完成框几次提出 android:paddingStart android:paddingStop。

我真的不明白这些属性应该做什么。

eclipse/javadoc 文档并没有真正的帮助:设置起始边缘的填充,以像素为单位;请参阅填充。 并且在线文档没有对这些属性进行任何引用:http://developer.android.com/reference/android/view/View.html

你能解释一下吗?

最佳答案

阅读 Android 源代码 (View.java) 后,似乎 paddingStart 和 paddingEnd 有助于处理用户定义的字母方向(从左到右,从右到左)。

因此,paddingStart 在 LTR(从左到右)语言中被解释为 paddingLeft,在 RTL(从右到左)语言中被解释为 paddingRight。

来自 View.java (android-4.0.1) 的源代码:

    switch (getResolvedLayoutDirection()) {
case LAYOUT_DIRECTION_RTL:
// Start user padding override Right user padding. Otherwise, if Right user
// padding is not defined, use the default Right padding. If Right user padding
// is defined, just use it.
if (mUserPaddingStart >= 0) {
mUserPaddingRight = mUserPaddingStart;
} else if (mUserPaddingRight < 0) {
mUserPaddingRight = mPaddingRight;
}
if (mUserPaddingEnd >= 0) {
mUserPaddingLeft = mUserPaddingEnd;
} else if (mUserPaddingLeft < 0) {
mUserPaddingLeft = mPaddingLeft;
}
break;
case LAYOUT_DIRECTION_LTR:
default:
// Start user padding override Left user padding. Otherwise, if Left user
// padding is not defined, use the default left padding. If Left user padding
// is defined, just use it.
if (mUserPaddingStart >= 0) {
mUserPaddingLeft = mUserPaddingStart;
} else if (mUserPaddingLeft < 0) {
mUserPaddingLeft = mPaddingLeft;
}
if (mUserPaddingEnd >= 0) {
mUserPaddingRight = mUserPaddingEnd;
} else if (mUserPaddingRight < 0) {
mUserPaddingRight = mPaddingRight;
}
}

关于android - 什么是 paddingStart 和 paddingEnd?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12160105/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com