摘要:什么是界面布局為應用程序提供界面架構。線性布局指子控件以水平或垂直方式排列,正如其名字一樣,這個布局中的所有控件在線性方向上依次排列。可以把布局看作是一個可以放置很多控件的容器,它可以按照一定的規律調整控件的位置,從而實現精美的界面。
1. 什么是Layout?
Layout——界面布局,為應用程序提供界面架構。控制Activity中控件的大小、位置、顏色等屬性的方法.
Layout 與 ViewGroup的關系
ViewGroup是一個容器,繼承自View.
ViewGroup是Layout和一些其它組件的基類.
在Android中提供了幾個常用布局:
LinearLayout 線性布局
RelativeLayout 相對布局
FrameLayout 幀布局
AbsoluteLayout 絕對布局
TableLayout 表格布局
GridLayout 網格布局
今天我們主要講線性布局,其余的常用布局會在后期文章為大家詳細講述。
2. LinearLayout線性布局:指子控件以水平或垂直方式排列,正如其名字一樣,這個布局中的所有控件在線性方向上依次排列。
常用屬性:
android:id:為該組件添加一個資源id,即標識符,可以通過id來找到該布局或者控件。
android:layout_width:布局的寬度,用wrap_content表示組件的實際寬度,match_parent表示填充父容器
android:layout_height:布局的長度,用wrap_content表示組件的實際長度,match_parent表示填充父容器
android:orientation:布局中的排列方式,有兩種方式:horizontal水平,vertical豎直,如果不設置則默認水平顯示
android:gravity:控制組件所包含的子元素的對齊方式
android:layout_gravity:控制該組件在父容器里的對齊方式
android:background:為該組件添加一個背景圖片或者背景顏色,顏色常以六位的十六進制表示
android:layout_margin :外邊距,布局或控件距離外部元素的邊距
android:layout_padding :內邊距,布局或控件距離內部元素的邊距
android:layout_weight:權重,除了被顯示占據的空間以外的的空間,然后根據權重的大小來分配空間,使用權重通常會把分配該權重方向的寬度設置為0dp,如果未設置0dp,則該控件會占據指定的寬度,然后再加上根據權重來分配的空間
下面依次分別舉例說明使用方法
orientation 是一個視圖組,可以在一個方向垂直或者水平分布所有子項
當 android:orientation="vertical" 時, 只有水平方向的設置才起作用,垂直方向的設置不起作用.即:left,right,center_horizontal 是生效的.
當 android:orientation="horizontal" 時, 只有垂直方向的設置才起作用,水平方向的設置不起作用.即:top,bottom,center_vertical 是生效的.
gravity:
android:layout_gravity是本(子)元素相對于父元素的對齊方式設置在子元素上.
android:gravity="bottom|right"是本(父)元素所有子元素的對齊方式,設置在父元素上,多個值用 | 隔開.
其屬性值分別為:center(整體居中)、center_vertical(垂直居中)、center_horizontal(水平居中)、right(居右)、left(居左)、bottom(底部)和top(頂部)
background
padding && margin:
android:padding="10dp" (是本元素所有子元素的與父元素邊緣的距離,設置在父元素上).
android:layout_marginLeft="10dp"(子元素與父元素邊緣的距離,設置在子元素上).
weight:
android:layout_weight ="1"(線性布局內子元素對未占用空間【水平或垂直】分配權重值,其值越小,權重越大.
前提是子元素設置了android:layout_width = "match_parent" 屬性 ( 水平方向 )或 android:layout_height = "match_parent"屬性( 垂直方向).
如 果 某 個 子 元 素的android:layout_width = "0dp"或android:layout_height="0dp" ,則 android:layout_weight 的設置值 對該方向上空間的分配則剛好相反。
用代碼方式編寫linearlayout布局
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //創建LinearLayout布局對象 LinearLayout liHello = new LinearLayout(this); //對于布局方面的屬性這樣來設置 LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); //設置布局LinearLayout的布局排列方式 liHello.setOrientation(LinearLayout.VERTICAL); //設置布局背景顏色 liHello.setBackgroundColor(Color.parseColor("#F9658E")); //設置布局內邊距,注意這里不可以設置外邊距 liHello.setPadding(10, 20, 30, 40); //設置組件內所包含的子元素的對齊方式 liHello.setGravity(Gravity.CENTER); TextView tvHello = new TextView(this); tvHello.setText("你好"); liHello.addView(tvHello, param); //設置顯示liHello布局 setContentView(liHello); }結語
我們的軟件是由好多個界面組成的,而每個界面又由N多個控件組成,Android中借助布局來讓各個空間有條不紊的擺放在界面上。可以把布局看作是一個可以放置很多控件的容器,它可以按照一定的規律調整控件的位置,從而實現精美的界面。布局中也可以放置布局,通過多層布局的嵌套,實現比較復雜的界面。相信小伙伴兒們已經學會LinearLayout的使用方法了,那就趕緊操練起來吧。
PS:如果還有未看懂的小伙伴,歡迎加入我們的QQ技術交流群:892271582,里面有各種大神回答小伙伴們遇到的問題哦~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76160.html
摘要:前言上一期我們給大家講解了的使用,這一期我們為大家講解一下相對布局的使用,是的六大布局之一,也是我們常用的布局之一,下面我們一起開始學習吧簡介相對布局允許子元素指定它們相對于其父元素或兄弟元素的位置,這是實際布局中最常用的布局方式之一。 前言 上一期我們給大家講解了FrameLayout的使用,這一期我們為大家講解一下RelativeLayout(相對布局)的使用,RelativeLa...
摘要:舉例,有個第一層為公司,第二層為辦公室,第三層為工位,第四層是程序猿。若不設置的位置,則此四個文字都將默顯示在左上角,并且公司在最下面,程序猿在最上面。 前言 上一期我們給大家講解了LinearLayout,這一期我們為大家講解一下FrameLayout(幀布局)的使用,相較于其他布局,FrameLayout可以說的上是最簡單的一個,并且其使用范圍相對來說也相對較小,但是也是Andro...
摘要:六大布局之簡介表格布局是將子分別排列成行和列的布局,是由許多對象組成的,表格布局以行列的形式管理子控件,每一個單元是一個或者對象。 前言 Hi,大家好,新的一周開始啦,讓我們繼續遨游在Android的知識海洋中吧!上一次我們講到了RelativeLayout,相信不少小伙伴已經著手實戰,那么今天我們為大家帶來六大布局中剩下的三個布局。本篇文章可以和前面的FrameLayout一同歸類到...
閱讀 2319·2021-11-23 09:51
閱讀 3752·2021-11-11 10:57
閱讀 1400·2021-10-09 09:43
閱讀 2489·2021-09-29 09:35
閱讀 2019·2019-08-30 15:54
閱讀 1792·2019-08-30 15:44
閱讀 3185·2019-08-30 13:20
閱讀 1694·2019-08-30 11:19