1.线性布局 LinearLayout
LinearLayout简单来说就是线性布局,线性肯定是具有横竖两种方向的,水平和垂直。
在使用LinearLayout的时候,需要注意以下几点
2.排列方式(orientation)
排列方式有水平和垂直两种方式
在xml文件中:
android:orientation="vertical" // 垂直排列
android:orientation="horizontal" // 水平排列
在java代码中:
linearLayout.setOrientation(LinearLayout.VERTICAL); // 设置垂直排列
linearLayout.setOrientation(LinearLayout.HORIZONTAL);// 设置水平排列
这里需要注意:
android:orientation="vertical",子View使用layout_gravity在垂直方向上的设定无效
android:orientation="horizontal",子View使用layout_gravity在水平方向上的设定无效
3.摆放位置(gravity/layout_gravity)
上面讲到了排列问题,这里在来讲一下摆放问题
gravity是针对当前控件里面内容的摆放,如果是容器,则针对的是容器里面子view的摆放;如果是控件,则针对的是控件里面内容的摆放。
layout_gravity是指当前控件在父控件里面的摆放位置,不过需要注意的一点是父控件设置的gravity的级别要低于子控件设置的layout_gravity。
我们来分析其中的一种情况然后来做个总结。
LinearLayout的排列方式为vertical,优先级最高。当LinearLayout设置了gravity,都是在LinearLayout排列方式为vertical,LinearLayout设置了gravity之后的位置重新来进行排列的。如果子view设置了layout_gravity的话,那么子View的排列方式按子View设置的为主,下面看个例子:
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
android:layout_width="100dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="hello"/>
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center_v