2012-06-14 112 views
3

我有一個動態大小的RelativeLayout,其中包含任意文本的TextView。我也有固定大小的TextView與時間戳。我想將兩個RelativeLayout和TextView與時間戳放在一行,並排。Android - 在行中放置固定大小和動態大小的視圖

像這樣:

What I want to get

什麼我真的越來越:

What I'm really getting

正如你所看到的,與文本佈局只是佔據了整個寬度。

XML:

<RelativeLayout android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/news_list_element" 
       android:layout_marginRight="5dip" 
       android:layout_alignParentLeft="true" 
       android:focusable="false" 
       android:paddingRight="8dip" 
       android:paddingLeft="17dip" 
       android:paddingTop="4dip" 
       android:paddingBottom="4dip"> 
    <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/news_list_text" 
       android:background="@android:color/transparent" 
       android:textColor="#000000" 
       android:focusable="false" 
       android:padding="3dip" 
      /> 
</RelativeLayout> 
<TextView android:id="@+id/messages_dialog_timestamp_in" 
      android:background="#000000" 
      android:text="12:05" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_toRightOf="@id/news_list_element" 
      android:paddingBottom="9dip" 
      android:paddingLeft="0dip" 
      android:textColor="#8f9eac" 
     /> 

回答

1

試試這個:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 
    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:id="@+id/news_list_text" 
     android:background="@android:color/transparent" 
     android:textColor="#000000" 
     android:focusable="false" 
     android:padding="3dip" 
     android:layout_weight="1" 
     android:layout_gravity="left" 
    /> 
    <TextView android:id="@+id/messages_dialog_timestamp_in" 
     android:background="#000000" 
     android:text="12:05" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingBottom="9dip" 
     android:paddingLeft="0dip" 
     android:textColor="#8f9eac" 
     android:layout_gravity="right" 
    /> 

android:layout_gravity="left"將使該消息的TextView從父的左邊緣開始。

android:layout_gravity="right"會將時間戳Textview放在父項的右邊緣。

android:layout_width="0dp"與消息中的android:layout_weight="1" TextView的合併將導致其擴大到填滿所有剩餘空間畢竟其他部件到位,並有他們需要的空間預留(所以它不會推時間戳關閉屏幕)。

這個佈局與你所顯示的有些不同,即使短消息的Textview區域將擴大以填充可用空間並使時間戳全部出現在右邊的垂直線上(這將看起來整潔的IMO )。