先明確幾個概念的區別:?
padding margin都是邊距的含義,關鍵問題得明白是什么相對什么的邊距.?
padding是控件的內容相對控件的邊緣的邊距.?
margin是控件邊緣相對父控件的邊距.?
?
android:gravity 屬性是對該view 內容的限定.比如一個button 上面的text. 你可以設置該text 在view的靠左,靠右等位置.該屬性就干了這個.?
android:layout_gravity是用來設置該view中的子view相對于父view的位置.比如一個button 在linearlayout里,你想把該button放在靠左,靠右等位置就可以在linearlayout中通過該屬性設置.?
下面看布局文件及效果圖?
Java代碼??
<?xml?version="1.0"?encoding="utf-8"?>??<LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"??????android:orientation="horizontal"?android:layout_width="fill_parent"??????android:layout_height="wrap_content"?android:gravity="center_vertical">??????<ImageView?android:id="@+id/ivLogo"?android:layout_width="50dp"??????????android:layout_height="50dp"?android:src="@drawable/icon"??????????android:paddingLeft="5dp"?/>??????<RelativeLayout?android:id="@+id/rl_name"??????????android:layout_width="wrap_content"??????????android:layout_height="wrap_content"?android:gravity="right"??????????android:padding="10dp">??????????<TextView?android:id="@+id/tvApplicationName"??????????????android:layout_width="wrap_content"?android:layout_height="wrap_content"??????????????android:textSize="16dp"?/>??????</RelativeLayout>??????<RelativeLayout?android:id="@+id/rl_score"??????????android:layout_width="fill_parent"??????????android:layout_height="wrap_content"?android:gravity="right"??????????android:padding="10dp">??????????<TextView?android:id="@+id/tvRating"?android:layout_width="wrap_content"??????????????android:layout_height="wrap_content"?android:text="5.0"?/>??????????<RatingBar?android:id="@+id/ratingbar"?android:layout_width="wrap_content"??????????????android:layout_height="wrap_content"?android:numStars="5"??????????????style="?android:attr/ratingBarStyleSmall"?android:layout_below="@id/tvRating"?/>??????</RelativeLayout>??</LinearLayout>??
?
上面的布局文件是一個ListView中的list_item布局,在一個ListView中顯示所有的APK資源,每個資源項顯示圖標,名稱及評分。在listItem的最外層LinearLayout中加android:gravity="center_vertical",設定內容垂直居中顯示。在id為rl_score的RelativeLayout中設定android:layout_width="fill_parent"來填充剩余空間;android:gravity="right"設定內容相對于rl_score右對齊;android:padding="10dp"設定RelativeLayout中的內容相對RelativeLayout的邊緣的邊距為10dp。?
這個布局雖然簡單,但卻是經常用到的。?
引用請注明出處:http://zhangkun716717-126-com.iteye.com/
http://zhangkun716717-126-com.iteye.com/blog/869039
?
轉載于:https://www.cnblogs.com/softidea/p/4783907.html
總結
以上是生活随笔為你收集整理的用android LinearLayout和RelativeLayout实现精确布局(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。