前面文章有講過Android布局中常用的線性布局和相對布局,這裡學習另外三種不常用布局幀布局、表格布局、網格布局
幀布局
如上圖類似這種布局就是幀布局,後面的子元素直接覆寫在前面的子元素之上,将前面的子元素部分和全部遮擋
常用屬性
android:layout_gravity="center"//控件重力
android:gravity="center"//控件内容相對于控件本身的位置
android:foreground="@mipmap/bg"//前景
android:foregroundGravity="center_vetical"//前景重力
案例代碼
<TextView
android:layout_width="350dp"
android:layout_height="350dp"
android:background="#ff0000"
android:layout_gravity="center"/>
<TextView
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#00ff00"
android:layout_gravity="center"
/>
<TextView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#0000ff"
android:layout_gravity="center"
android:text="測試内容"
android:textColor="#ffffff"
android:gravity="center"
/>
效果
表格布局
通過行列的形式展示我們的控件,這樣的布局就是表格布局
常見屬性
android:stretchColumns="*"//設定可伸展的列,傳入的是整型資料,即列的索引,*代表所有,也可多個比如1,2
android:shrinkColumns="1"//可伸縮的列
android:collapseColumns="2,3"//隐藏的列
案例代碼
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="*"
>
<!--
1.直接在Tablelayout中添加控件,預設控件和父容器等寬,要讓一些控件出現在同一行,把這些控件放在TableRow
裡面,寬度預設是内容寬度
-->
<EditText/>
<TableRow>
<Button android:text="7" />
<Button android:text="8" />
<Button android:text="9" />
<Button android:text="/" />
</TableRow>
<TableRow>
<Button android:text="4" />
<Button android:text="5" />
<Button android:text="6" />
<Button android:text="-" />
</TableRow>
<TableRow>
<Button android:text="1" />
<Button android:text="2" />
<Button android:text="3" />
<Button android:text="+" />
</TableRow>
<TableRow>
<Button android:text="." />
<Button android:text="0" />
<Button android:text="=" />
<Button android:text="*" />
</TableRow>
</TableLayout>
網格布局
如上圖,網格布局和表格布局類似,但是網格能自身确定整個布局應該出現多少行多少列。控件放入的時候從左到右擺滿指定的列數,再從第二行開始擺放
android:orientation="horizontal"//表示控件在網格中從左到右順序擺放還是上到下的順序擺放
android:rowCount="4"//行數
android:columnCount="3"//列數
android:layout_rowSpan="2"//跨2行
android:layout_columnSpan="2"//跨2列
android:layout_gravity="fill"//填充展示
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:rowCount="4"
android:columnCount="3"
>
<Button android:text="1"/>
<Button android:text="2"/>
<Button android:text="3"/>
<Button android:text="4"
android:layout_rowSpan="2"
android:layout_columnSpan="2"
android:layout_gravity="fill"/>
<Button android:text="5"/>
<Button android:text="6"/>
<Button android:text="7"/>
<Button android:text="8"/>
<Button android:text="9"/>
</GridLayout>