2013-07-09 46 views
0

我想實現下面的佈局,其中有一個textview和圖像的修復空間。如何正確使用重量屬性?

我使用相對佈局,它沒有「重量」屬性。如何使用LinearLayout實現以下佈局?

enter image description here

下面是我的代碼

   <RelativeLayout> 
       <TextView 
      android:id="@+id/txt" 
      android:paddingLeft="5dp"    
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"     
      android:gravity="left" 
      android:textSize="14dp"  
      android:textColor="@android:color/white"/>   

       <TextView 
        android:id="@+id/date_n_time" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
      android:padding="5dp"   
        android:textColor="#E0FFFF"  
        android:layout_below="@+id/txt" /> 

       <ImageView android:id="@+id/imageview" 
        android:layout_height="wrap_content" 
        android:paddingRight="5dp"   
        android:contentDescription="Image" 
        android:layout_width="wrap_content"   
        android:layout_alignParentRight="true" 
        android:src="@drawable/icon"/> 
     </RelativeLayout> 

我已經使用的RelativeLayout用於放置的TextView和圖像像上述圖像。但是textview和imageview是相互重疊的。

+1

固定的空間,可以簡單地保證金 – njzk2

回答

0

您可以像這樣輕鬆地將TextView放置在圖像的左側:

android:layout_toLeftOf="@+id/yourimg" 

添加保證金,你應該能夠很容易地實現這一佈局

+0

@ benjamin:謝謝,我的問題解決了。 – user1740281

0

您可以通過在文本視圖右側或圖像視圖左側提供填充/邊距來提供固定空間。或者,如果您想使用線性佈局,則在文本視圖中提供7的權重,在圖像視圖中提供3的權重。

0

使用LinearLayoutlayout_weightSumlayout_weight

下面是將屏幕垂直分成兩部分的示例。

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:layout_weigthSum="1"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.9"> 

     <ListView 
      android:id="@+id/frontpagetasklistid" 
      android:layout_width="fill_parent" 
      android:layout_height="375dp" > 

     </ListView> 
     </LinearLayout> 
     <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.1"> 

     <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 
      > 
     <EditText 
      android:id="@+id/edittextidAddTodayTask" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:background="@drawable/edittextselector" 
      android:hint="Add Today Task"/> 

     <ImageButton 
      android:id="@+id/imagebuttonidAddTodayTask" 
      android:layout_width="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:src="@drawable/addtask" /> 

     </RelativeLayout> 
     </LinearLayout> 

    </LinearLayout> 
+0

@ Brijesh塔庫爾:謝謝你的幫助。 – user1740281

0

你應該使用的LinearLayout與水平方向,裏面放一個TextView和ImageView的,同時設置layout_width到0dp和體重,你希望他們有什麼相對權重,例如

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

<TextView 
    android:layout_width="0dip" 
    android:layout_height="wrap_content" 
    android:layout_weight="4" 
/> 

<ImageView 
    android:layout_width="0dip" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 

/> 
</LinearLayout> 

textView的權重爲4,imageView的權重爲1,這意味着textview會獲得4/5的空間,而textView將獲得1/5的空間,試試吧

+0

謝謝Dan Levin回覆。 – user1740281