刚接触android,遇到xml里的android:layout_width和android:width,觉得他们类似,但是有说不出有什么区别,google后觉得说的都不太明白,遂自己试验,成果如下:
概括的说,view中的layout_width形容的是本view和父容器的关系,比如button和包含它的LinearLayout;而view中的width是用来描述自己本身的。
如果你有swing编程的经验的话,就会知道,组件的大小是由包含它的布局管理器决定的,所以,如果view中有layout_width属性的话,不管有没有width属性,该view的形状是由父容器(即布局管理器LinearLayout)决定的,如下:
- <Button
- android:id="@+id/button1"
- android:layout_width="match_parent"
- android:width="100dp"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:gravity="right"
- android:text="Bsdfsdfsdfsdfsdfsdfsdfsdf" />
如上图,不管width设置的多小,button的宽度是LinearLayout控制的。
如果在android:layout_width设置为"wrap_content"时,意思是让在容器中的view宽度随着view中内容的变化而变化,此时,如果存在width的话,那么view的宽度就是由他们共同控制的,如下:
- <Button
- android:id="@+id/button1"
- android:layout_width="wrap_content"
- android:width="50dp"
- android:layout_height="wrap_content"
- android:text="Bsdfsdfsdfsdfsdfsdfsdfsdf" />