Android開發學習1
阿新 • • 發佈:2018-12-27
佈局
1. 線性佈局(LinearLayout)
常用屬性:
- orientation:佈局中常用的排列方式有 horizontal,Vertical兩種方式
- gravity : 控制組件所包含的子元素的對齊方式,可多個組合,如(left | bottom)
- layout_gravity : 控制該元件在父容器裡的對齊方式
- layout_width : 佈局的寬度,通常不寫數字,用wrap_content(元件實際大小),fill_parent或者match_parent填滿父容器
- layout_height : 佈局的高度,引數如上
- Id: 為該元件設定一個資源id,在java檔案中可以通過findViewById(id)找到該元件。
- background : 為該元件設定一個背景圖片,或者直接用顏色覆蓋
Weight(權重):
- 該屬性是用來等比例的劃分區域
- 分誰,誰為0,weight按比例即可
Divider(分割線):
- 設定分割線圖片,通過showDividers來設定分隔線的所在位置,有四個可選值 none,middle,begining,end;
- divider:設定分隔線圖片
- dividerPadding:設定分隔線的padding
2. 相對佈局(RelativeLayout)
基本屬性
- gravity: 設定容器內元件的對齊方式
- ignoreGravity: 設定了該屬性為true的元件,將不受gravity屬性的影響
根據父容器定位
- layout_alighParentLeft : 左對齊
- layout_alighParentRight:右對齊
- layput_alighParentTop:頂部對齊
- layout_alighParentBottom:底部對齊
- layout_centerHorizontal:水平居中
- layout_centerVertical:垂直居中
- layout_centerInParent:中間位置
根據兄弟元件定位
- layout_toLeftOf: 參考元件的左邊
- layout_toRightOf:參考元件的右邊
- layout_above:參考元件的上方
- layout_below:參考元件的下方
- layout_alignBottom: 對齊參考元件的下邊界
- layout_alignTop: 對齊參考元件的上邊界
- layout_algnLeft:對齊參考元件的左邊界
- layout_alignRight:對齊參考元件的右邊界
margin(偏移) 設定元件與父容器的邊距
- layout_margin:設定元件上下左右的偏移量
- layout_marginLeft:設定元件離左邊的偏移量
- layout_marginRight:設定元件離右邊的偏移量
- layout_marginTop:設定元件離上面的偏移量
- layout_marginButtom:設定元件離下面的偏移量
padding(填充) 設定元件內部元素間的邊距(Textview裡的字型位置)
- padding: 往內部元素的上下左右填充一定的邊距
- paddingLeft:往內部元素的左邊填充一定的邊距
- paddingRight:往內部元素的右邊填充一定的邊距
- paddingTop:往內部元素的上方填充一定的邊距
- paddingBottom:往內部元素的下方填充一定的邊距
3. 表格佈局(TableLayout)
- collapseColumns 隱藏列
- stretchColumns 拉伸列
- shrinkColumns(收縮列)
- 如果我們直接往TableLayout中新增元件的話,那麼這個元件將佔滿一行!
- 如果我們想一行上有多個元件的話,就要新增一個TableRow的容器,把元件都丟到裡面!
- tablerow中的元件個數就決定了該行有多少列,而列的寬度由該列中最寬的單元格決定
- tablerow的layout_width屬性,預設是fill_parent的,我們自己設定成其他的值也不會生效!!! 但是layout_height預設是wrapten——content的,我們卻可以自己設定大小!
- 整個表格佈局的寬度取決於父容器的寬度(佔滿父容器本身)
- 有多少行就要自己數啦,一個tablerow一行,一個單獨的元件也一行!多少列則是看tableRow中 的元件個數,元件最多的就是TableLayout的列數
- android:collapseColumns:設定需要被隱藏的列的序號
android:shrinkColumns:設定允許被收縮的列的列序號
android:stretchColumns:設定執行被拉伸的列的列序號
以上這三個屬性的列號都是從0開始算的,比如shrinkColunmns = “2”,對應的是第三列!
可以設定多個,用逗號隔開比如”0,2”,如果是所有列都生效,則用”*”號即可
除了這三個常用屬性,還有兩個屬性,分別就是跳格子以及合併單元格,這和HTML中的Table類似:
android:layout_column=”2”:表示的就是跳過第二個,直接顯示到第三個格子處,從1開始算的!
android:layout_span=”4”:表示合併4個單元格,也就說這個元件佔4個單元格
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/TableLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:stretchColumns="0,3"
android:gravity="center_vertical"
android:background="#FF0FF0"
>
<TableRow>
<TextView />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="使用者名稱:"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="150dp"/>
<TextView />
</TableRow>
<TableRow>
<TextView />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密 碼:"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="150dp"
/>
<TextView />
</TableRow>
<TableRow>
<TextView />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登陸"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退出"/>
<TextView />
</TableRow>
</TableLayout>
4. 幀佈局(用的不多)(FrameLayout)
- foreground: 設定改幀佈局容器的前景影象
- foregroundGravity: 設定前景影象顯示的位置
android:foreground="@drawable/logo"
android:foregroundGravity="right|bottom">
5. 網格佈局(GridLayout)
設定對齊方式
- 設定排列方式 android:orientation=”” vertical(豎直,預設)或者 horizontal(水平)
- 設定對齊方式 android:layout_gravity=”” center,left,right,bottom,,,,,,,bottom|left
設定幾行幾列
- 設定行數 android:rowCount=”4” //設定網路佈局有4行
- 設定列數 android:columnCount=”4” //設定網格佈局有4列
設定元件所在的行列(從0開始計算的哦)
1.第幾行 android:layout_row=”1” //設定元件位於第二行
2. 第幾列 android:layout_column=”2” //設定該元件位於第三列
設定元件橫跨幾行幾列
- 橫跨幾行:android:layout_rowSpan=”2” //縱向橫跨2行
- 橫跨幾列 android:layout_columnSpan=”3”//橫向縱跨3列