2013-07-16 72 views
0

我試圖實現與環聊類似的消息框。如果輸入的內容更多,我想讓edittext展開,右邊的按鈕右側的仍位於右下角。android消息框佈局實現

Message box from Hangout

我目前的執行情況如下。如果由於「alignParentTop」導致編輯文本擴展,右側的按鈕將向上移動。但是,如果我將「alignParentBottom」設置爲true,則整個屏幕將被此相對佈局佔用。不知道如何解決它

<RelativeLayout android:id="@+id/structured_relative_interaction" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:background="#E0E0E0"> 

    <ImageButton android:id="@+id/structured_imagebutton_takePhoto" 
     android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentRight="true" 
     android:background="@drawable/save_structured_button" 
     android:src="@drawable/take_photo"/> 

    <EditText android:id="@+id/structured_edittext_answer" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_toLeftOf="@id/structured_imagebutton_takePhoto" 
     android:layout_margin="5dp" 
     android:gravity="top" 
     android:maxLines="5" 
     android:padding="10dp" 
     android:hint="@string/structured_hint" 
     android:textColorHint="#B0B0B0" 
     android:inputType="textCapSentences|textMultiLine"> 
    </EditText> 

</RelativeLayout> 

回答

1

我可以使用下面的佈局來實現它(對圖像和字符串一些IDS被改變,使其可編譯):

<!--suppress AndroidLintUselessParent, AndroidLintContentDescription --> 
<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    <RelativeLayout 
      android:id="@+id/structured_relative_interaction" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:gravity="bottom" 
      android:background="#E0E0E0"> 

     <EditText 
      android:id="@+id/structured_edittext_answer" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_toLeftOf="@+id/structured_imagebutton_takePhoto" 
      android:layout_margin="5dp" 
      android:gravity="bottom" 
      android:maxLines="5" 
      android:padding="10dp" 
      android:hint="hint" 
      android:textColorHint="#B0B0B0" 
      android:inputType="textCapSentences|textMultiLine" /> 

     <ImageButton 
      android:id="@+id/structured_imagebutton_takePhoto" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_alignParentRight="true" 
      android:layout_alignBottom="@id/structured_edittext_answer" 
      android:background="@drawable/ic_launcher" /> 
    </RelativeLayout> 
</RelativeLayout> 

會產生:

enter image description here

似乎是與ExitTextRelativeLayout(至少,我以前見過一些類似的問題)的常見問題。

+0

看起來不錯!稍後會嘗試! –

0
 <EditText 
      android:id="@+id/write_post" 
      android:layout_width="match_parent" 
      android:layout_height="85dip" 
      android:ems="10" 
      android:gravity="top" 
      android:hint="@string/write_post" 
      android:inputType="textMultiLine" 
      android:textAppearance="?android:attr/textAppearanceSmall" > 
     </EditText> 

集安卓的inputType到textMultiLine,機器人如果文本從boundry超過自動擴展的EditText。