国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android App中使用LinearLayout進行居中布局的實例講解

2019-12-12 06:36:37
字體:
來源:轉載
供稿:網友

要想讓您的控件水平居中或垂直居中其實很簡單,只要在控件的上一級中設置【android:gravity="center"】屬性即可
如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:gravity="center"  android:background="#000000"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  >  <ImageView  android:id="@+id/logo"  android:src="@drawable/logo"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  /></LinearLayout> 

這樣一個ImageView控件就乖乖的待在你選定區域的正中間了。 gravity的屬性值還有很多,可以單獨設置水平或垂直居中。大家可以查看相應的文檔,或使用Eclipse的提示功能快速查看。
   
我們來看一個實例,如果你想實現這樣的布局,兩個按鈕居中,該怎樣做?

2016413150749150.jpg (386×727)

比較容易實現的是LinearLayout布局,當然如果換成RelativeLayout同樣也可以實現。
這里簡單說一下用RelativeLayout布局如何實現,首先需找中心點,然后以這個中心點為參照物即可實現。接下來看一下更容易實現的LinearLayout布局的實現。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:orientation="vertical"       android:layout_width="match_parent"       android:layout_height="match_parent"       android:gravity="center">  <Button      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:id="@+id/start_server"      android:text="Start" />  <Button      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:id="@+id/stop_server"      android:text="Stop" /></LinearLayout>

如果現在需求改變了,中間只需要一個Button即可,那么實現起來很簡單,只需要將上面的其中一個Button標簽刪除即可,但是有些人這么去實現

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:orientation="vertical"       android:layout_width="match_parent"       android:layout_height="match_parent">  <Button      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:id="@+id/start_server"      android:layout_gravity="center"      android:text="Start" /></LinearLayout>

這么實現顯然不能居中,雖然在Button標簽指定了android:layout_gravity="center"但是貌似布局不領情,為啥?
原因很簡單,LinearLayout只能有一個方向,要么Vertical,要么Horizontal,完全不會領layout_gravity這個屬性的情,所以上面的實現只有這么一個結果

2016413150836754.jpg (374×720)

如果改成水平方向的布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:orientation="horizontal"       android:layout_width="match_parent"       android:layout_height="match_parent">  <Button      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:id="@+id/start_server"      android:layout_gravity="center"      android:text="Start" /></LinearLayout>

會變成這樣的結果

2016413150854909.jpg (370×723)

按照上面的理論也就能想通了,所以android:layout_gravity="center"這個屬性雖然LinearLayout也具有,但是卻虛晃一槍,真正其作用的還是其本身的屬性android:gravity="center",當然如果想一探究竟,為啥不起作用,可以從LinearLayout這個布局的源代碼看起,這里不再贅述。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东丽区| 常熟市| 高州市| 南投市| 威信县| 安庆市| 福清市| 利川市| SHOW| 泸溪县| 获嘉县| 日照市| 来宾市| 英德市| 桦川县| 黎城县| 鹤庆县| 莱阳市| 微山县| 南郑县| 满洲里市| 崇礼县| 贵南县| 文登市| 陕西省| 迭部县| 西吉县| 喀喇| 新竹市| 密云县| 镇沅| 舟曲县| 南投县| 永顺县| 东阳市| 仙居县| 招远市| 灵璧县| 绵竹市| 会理县| 武乡县|