Android --- 布局属性gravity和layout_gravity的区别
一、gravity和layout_gravity相同處
? ? 兩者都是設置對齊方式的屬性。內部的屬性值相同。
根據英文意思也能理解其中的意思。如center_horizontal表示在水平方向上的位置為中間。
?
?二、gravity和layout_gravity的不同處
? gravity是設置自身內部元素的對齊方式。比如一個TextView,則是設置內部文字的對齊方式。如果是ViewGroup組件如LinearLayout的話,則為設置它內部view組件的對齊方式。
?layout_gravity是設置自身相當于父容器的對齊方式。比如,一個TextView設置layout_gravity屬性,則表示這TextView相對于父容器的對齊方式。
具體參考如下
1、gravity效果
①TextView
? 【代碼】
1 <TextView 2 android:text="這是一個TextView" 3 android:layout_width="200dp" 4 android:layout_height="200dp" 5 android:gravity="center" 6 android:background="#ff0" 7 />【提示】這里方便觀察,我們給TextView設置了一個backGround背景顏色。設置了固定的寬度
【注意】如果要用gravity屬性,此組件的layout_width和layout_height不能設置為wrap_content。此時設置的gravity屬性沒有效果,因為組件包裹著內容,無論設置什么,也都不能有改變
【效果】
?
②LinearLayout
【代碼】
1 <LinearLayout2 android:layout_width="match_parent"3 android:layout_height="match_parent"4 android:gravity="center"5 android:background="#f00"6 >7 <TextView8 android:text="TextView在這里"9 android:layout_width="200dp" 10 android:layout_height="200dp" 11 android:background="#ff0" 12 /> 13 </LinearLayout>【提示】此時外部viewGroup類組件設置gravity為center,內部組件TextView在外部LinearLayout的中間。TextView沒有設置gravity屬性,則文字在開始位置
【效果】
?
2、layout_gravity效果
? 對于layout_gravity不是什么情況下都能設置的屬性(如RelativeLayout),而且在不同的viewGroup中產生的效果也會不同(如LinearLayout)。
具體實例如下
?①LinearLayout
1 <LinearLayout2 android:layout_width="match_parent"3 android:layout_height="match_parent"4 android:background="#f00"5 android:orientation="horizontal">6 <TextView7 android:text="TextView在這里"8 android:layout_width="200dp"9 android:layout_height="200dp" 10 android:background="#ff0" 11 android:layout_gravity="center" 12 /> 13 </LinearLayout>【效果】
?
【提示】此時layout_gravity的center值,并沒有讓TextVieW在LinearLayout的中間,這和LinearLayout的orientation的定位方向有關。
當設置為horizontal時,LinearLayout中的組件時按照橫著排列,當設置ayout_gravity屬性為center值時,組件就在垂直方向處于中間位置。同理,當設置為vertical時,效果如下
?
②FrameLayout(幀布局)
【代碼】
1 <FrameLayout2 android:layout_width="match_parent"3 android:layout_height="match_parent"4 android:background="#f00">5 <TextView6 android:text="TextView在這里"7 android:layout_width="200dp"8 android:layout_height="200dp"9 android:background="#ff0" 10 android:layout_gravity="center" 11 /> 12 </FrameLayout>【效果】
?
總結
以上是生活随笔為你收集整理的Android --- 布局属性gravity和layout_gravity的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android --- SharedPr
- 下一篇: Android --- 如何使状态栏和标