1.
即android:gravity用于设置View中内容相对于View组件的对齐方式,而android:layout_gravity用于设置View组件相对于Container的对齐方式。
2
android:paddingLeft和android:layout_marginLeft区别:
当你在LinearLayout中分别设置 android:layout_marginLeft="52dip"和android:paddingLeft="52dip"的时候,也许你在及时显示界面看到的效果是一样的,但是这两个属性是有区别的,android:layout_marginLef是设置整个布局离左边的距离是52像素,而android:paddingLeft是设置布局里面的内容距离左边是52像素,这个是可以验证的哦,你对一个EditText来分别设置这两个属性,你会发现当设android:paddingTop="20dip"的时候在界面上跟本就没什么效果,但是输入内容就看出来
3
当android:layout_width="match_parent"的时候,如果设置了weight属性,那么根据它的weight值(可以理解为优先级)来占据空间,而且这个值是越小,占的空间越大,因此此时可以理解为优先级.
比如:按钮1和按钮2的width属性都是match_parent,如果按钮1的weight= 1 按钮2的为weight = 2 那么按照优先级 按钮1先占据,按钮2后占据. 大小比例为
按钮1 = 2/(1+2) ,按钮2 = 1/(1+2)
如果按钮1的weight我们设置为1000,按钮2的weight设置为1 那么按钮2 几乎全部占据了所有空间!
总结:
要正确使用weight,不要再去纠结
android:layout_width="match_parent"
android:layout_width="wrap_content" 两种情况下该如何设置weight.因为这样设置根本就是错误的用法.
正确的用法是:
先设置 android:layout_width="0dp" 或者android:layout_height="0dp"
然后再去调配权重
我们如果在某个方向上使用了weight ,那么我们必须在对应的方向上将width/heigh设置为0dp. 它告诉了我们设置为0dp是因为使用weight,系统是采用了另外一套计算占用空间大小的算法的