LinearLayout也是ViewGroup的子类,算是个容器了。
两个最重要的xml属性: android:layout_gravity android:gravity
还有一个属性,是这两个货的爷。android:orientation。
下面来讨论了。
1: <LinearLayout android:layout_width="fill_parent" android:layout_height="100dp" android:orientation="vertical">
当布局方向是垂直的时候。就定义了儿子们,你们必须排成竖的。而且是按顺序来,不准插队。。。。。。。
android:gravity 这货也可以叫他爸爸gravity 。专门控制儿子的。控制对儿子的引力。
比如,我想让一排儿子们在左边,在右边,在。。。。。。。一供有9个位置,,,,我没说错吧。
android:layout_gravity 这货是每个儿子对自己引力的控制。
麻痹,android:gravity 不是想让我们排成一排,排的整齐吗。我就不,
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:text="nihao" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="nihao" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="nihao" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="nihao" /> </LinearLayout>
这货就跑到左边去了。它有想了,这尼吗我们一群儿子不还是在垂直方向的中间吗。不行,我要到左上角。好|top。结果呢。还是一样在左中。
也就是爸爸的gravity把一群儿子们限制在这9个位置中。。。。。。如果一个儿子不听话。想跑。也可以。他们的大爷把orientation限制死了。。。儿子你想跑。只能往orientation未设置的方向跑。。。。。我的例子中,只能往水平方向跑。
还有一句话。就是爸爸没设置 android:gravity。怎么办。好办呀。直接给我到左上角去。按个排吧。
可是,这完全满足不了我的需求啊。我有时候不想一个挨一个的排。咋办捏。。。。。。
好吧,android:weightSum 和 android:layout_weight出场了。
第一个是爸爸定义的。我的家产(空间)一共是这些。wrap_content是什么意思呢,就是儿子够吃的(空间)。
第二个,是儿子能分到多少家产(空间),那要是他已近wrap_content了。没事。先占着。
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:orientation="vertical" android:weightSum="5" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:text="nihao1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left|top" android:text="nihao2" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="nihao3" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="nihao4" /> </LinearLayout>