Android XML样式属性是否未按顺序覆盖?

Teo*_*nke 2 android android-layout

我有一个TextView应该10dp在顶部和底部以及30dp左侧填充.然后我尝试了:

android:padding="10dp"
android:paddingLeft="30dp"
Run Code Online (Sandbox Code Playgroud)

这就是我在CSS中所做的.但它不起作用.

无论顺序如何,我的左边填充都是10dp.Android样式属性是否按照它们出现的顺序被覆盖?如果是的话,是否有任何优先事项清单?例如:android:padding always overrides android:paddingLeft

覆盖是CSS中的一个重要特性,可以节省大量编码,因此我想知道这是否可以在Android中实现.

也许我找不到合适条款的答案.如果有人能指出我在哪里理解它,我将非常感激.

小智 11

Android布局系统与CSS不同.它并不关心属性的顺序,并padding始终覆盖paddingLeft,paddingRight等等.

您可以在View.java中找到相关的源代码(填充已设置)此处(如果设置了填充,则使用它,即使设置了paddingLeft).

这是最重要的片段:

if (padding >= 0) {
    leftPadding = padding;
    topPadding = padding;
    rightPadding = padding;
    bottomPadding = padding;
    mUserPaddingLeftInitial = padding;
    mUserPaddingRightInitial = padding;
}
Run Code Online (Sandbox Code Playgroud)