android gravity 代码,android:layout_gravity和android:gravity属性的区别
android:gravity / android:layout_gravity區別:
android:gravity 是設置該view類里面的內容相對于該view的位置,例如設置button里面的text相對于view的靠左,居中等位置。(也可以在Layout布局屬性中添加,設置Layout中組件的位置)
android:layout_gravity 是用來設置該view相對與父view的位置,例如設置button在layout里面的相對位置:屏幕居中,水平居中等。
即android:gravity用于設置View中內容相對于View組件的對齊方式,而android:layout_gravity用于設置View組件相對于Container的對齊方式。
說的再直白點,就是android:gravity只對該組件內的東西有效,android:layout_gravity只對組件自身有效
android:layout_gravity 只在 LinearLayout 和 FrameLayout 中有效:
①對于 LinearLayout :
當 android:orientation="vertical"? 時, 只有水平方向的設置才起作用,垂直方向的設置不起作用。即:left,right,center_horizontal 是生效的。
當 android:orientation="horizontal" 時, 只有垂直方向的設置才起作用,水平方向的設置不起作用。即:top,bottom,center_vertical 是生效的。
②對于 FrameLayout :
任意android:layout_gravity屬性都有效,可以非常方便實現對組件的布局。
我們來看我們在項目中如何實現下面的這樣一個布局:
我們有個一個標題欄,我們可以使用anctionbar來實現
其中+表示添加聯系人,通信錄要居中
我們如何實現了
假設:我們在外面先定義一個線性布局,水平排列
其中在定義兩個線性布局,但是這樣我們無法使用
android:layout_gravity="center_horizontal">因為父控件是水平方式的,我們就無法讓通信錄居中
下面我們如何讓通信錄居中了,我們可以把最外面的布局定義為相對布局:
代碼如下:
android:layout_width="fill_parent"
android:layout_height="48dp"
android:background="#e7e7e7"
android:layout_gravity="center_horizontal">
android:id="@+id/add"
android:layout_width="25dp"
android:layout_height="25dp"
android:background="@drawable/add1"
android:layout_marginLeft="20dp"
android:layout_centerVertical="true"/>
android:layout_width="100dp"
android:layout_height="fill_parent"
android:text="通信錄"
android:textColor="#333333"
android:gravity="center"
android:textSize="25sp"
android:layout_centerHorizontal="true"
/>
這樣我們可以讓添加聯系人垂直居中顯示,通訊錄水平方向居中顯示
總結
以上是生活随笔為你收集整理的android gravity 代码,android:layout_gravity和android:gravity属性的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [一起学Hive]之十二-Hive SQ
- 下一篇: 上海交通大学计算机科学与工程系,上海交通