2014-12-04 140 views
2

的視圖的右邊元素我有以下的情況:的LinearLayout添加填充父

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="3dp" 
     android:paddingBottom="3dp" 
     android:paddingLeft="6dp" 
     android:paddingRight="6dp" 
     android:orientation="horizontal"> 

     <com.myappnamespace.old.widgets.RoundBorderedImageView 
      android:layout_width="53dp" 
      android:layout_height="53dp" 
      app:src="@drawable/avatar_john_doe" 
      android:layout_gravity="bottom" 
      app:borderColor="#ff0" 
      /> 

     <com.myappnamespace.old.widgets.ConversationCloud 
      android:id="@+id/block" 
      android:layout_width="15dp" 
      android:layout_height="15dp" 
      android:layout_gravity="bottom" 
      android:layout_marginBottom="15dp" 
      android:layout_marginLeft="10dp" 
      /> 

     <RelativeLayout 
      android:id="@+id/message" 
      android:minHeight="100dp" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent" 
      android:background="#fff" 
      android:padding="6dp" 
      android:layout_gravity="bottom" 
      > 
      <TextView 
       android:id="@+id/text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Some dummy text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quis lectus metus, at posuere neque. Sed pharetra nibh eget orci convallis at posuere leo convallis. Sed blandit augue vitae augue scelerisque bibendum. Vivamus sit amet libero turpis, non venenatis urna. In blandit, odio convallis suscipit venenatis, ante ipsum cursus augue." 
       /> 
     </RelativeLayout> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="3dp" 
     android:paddingBottom="3dp" 
     android:paddingLeft="6dp" 
     android:paddingRight="6dp" 
     android:orientation="horizontal"> 

     <RelativeLayout 
      android:id="@+id/message2" 
      android:minHeight="100dp" 
      android:layout_height="wrap_content" 
      android:layout_width="200dp" 
      android:background="#fff" 
      android:padding="6dp" 
      android:layout_gravity="bottom" 
      > 
      <TextView 
       android:id="@+id/text2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Some dummy text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quis lectus metus, at posuere neque. Sed pharetra nibh eget orci convallis at posuere leo convallis. Sed blandit augue vitae augue scelerisque bibendum. Vivamus sit amet libero turpis, non venenatis urna. In blandit, odio convallis suscipit venenatis, ante ipsum cursus augue." 
       /> 
     </RelativeLayout> 

     <com.myappnamespace.old.widgets.ConversationCloud 
      android:id="@+id/block2" 
      android:layout_width="15dp" 
      android:layout_height="15dp" 
      android:layout_gravity="bottom" 
      android:layout_marginBottom="15dp" 
      android:layout_marginRight="10dp" 
      app:cloud_direction="right" 
      /> 

     <com.myappnamespace.old.widgets.RoundBorderedImageView 
      android:layout_width="53dp" 
      android:layout_height="53dp" 
      app:src="@drawable/avatar_john_doe" 
      android:layout_gravity="bottom" 
      app:borderColor="#ff0" 
      /> 

    </LinearLayout> 

</LinearLayout> 

結果:

screenshot of the layout

第一行的信息塊被填充的空間中,因爲它前面有兩個視圖元素和layout_height="fill_parent"。這工作正常,但我努力得到第二行相同的結果,除了消息塊在左邊。如果我在郵件上使用fill_parent,則會填滿整個屏幕。我正在尋找一種方法(不用用Java代碼修改佈局)來讓頭像和ConversationCould圖像將消息塊推到左邊。

在代碼中,我已經將第二個消息塊的寬度設置爲100dp,以演示它應該是什麼樣子(但是然後填滿了空白空間)。

我已經嘗試了一種相對佈局而不是線性佈局,但由於所需的重力底部,這不起作用。

我希望有人在這方面更有經驗,可以提供解決方案。感謝您的幫助。

編輯:TextView的是一個相對的佈局裏面,因爲我需要有後來添加額外的意見..

回答

3

weight=1width=0dp爲RelativeLayout的文本里面應該有match_parent的寬度

+0

確認這是行得通的。我在所有元素的重量上玩弄重量,但沒有理清。做得好 :) – 2014-12-04 09:08:22

1

試這個。你應該給體重3烏爾會話和1圖像

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="3dp" 
     android:paddingBottom="3dp" 
     android:paddingLeft="6dp" 
     android:paddingRight="6dp" 
     android:orientation="horizontal"> 

     <com.myappnamespace.old.widgets.RoundBorderedImageView 
      android:layout_width="0dp" 
      android:layout_height="53dp" 
      app:src="@drawable/avatar_john_doe" 
      android:layout_gravity="bottom" 
      app:borderColor="#ff0" 
      android:layout_weight="1"/> 

     <com.myappnamespace.old.widgets.ConversationCloud 
      android:id="@+id/block" 
      android:layout_width="15dp" 
      android:layout_height="15dp" 
      android:layout_gravity="bottom" 
      android:layout_marginBottom="15dp" 
      android:layout_marginLeft="10dp" 
      /> 

     <RelativeLayout 
      android:id="@+id/message" 
      android:minHeight="100dp" 
      android:layout_height="wrap_content" 
      android:layout_width="0dp" 
      android:background="#fff" 
      android:padding="6dp" 
      android:layout_gravity="bottom" 
      android:layout_weight="3"> 
      <TextView 
       android:id="@+id/text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Some dummy text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quis lectus metus, at posuere neque. Sed pharetra nibh eget orci convallis at posuere leo convallis. Sed blandit augue vitae augue scelerisque bibendum. Vivamus sit amet libero turpis, non venenatis urna. In blandit, odio convallis suscipit venenatis, ante ipsum cursus augue." 
       /> 
     </RelativeLayout> 

    </LinearLayout>