我在设计聊天布局时遇到了问题。我的XML列在下面。
所以布局由3部分组成:标题(RelativeLayout
里面有多个视图),ListView和页脚(RelativeLayout
EditText
和Button
) 。发送按钮位于EditText
旁边,但EditText
可以扩展到最多6行,我需要按钮保持在底部。 A无法使用alignParentBottom
,因为它会导致错误的依赖关系,并且页脚扩展会将ListView
推出屏幕。我还尝试将布局更改为线性布局,但是当ExitText
展开以允许多行输入时,仍然无法强制按钮保持在底部。任何建议表示赞赏。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ChatActivity" >
<RelativeLayout
android:id="@+id/RL_header"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#7B7B7B"
android:gravity="center_vertical" >
<ImageView
android:id="@+id/img_Contact_Icon"
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:padding="5dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tvContactName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/img_Contact_Icon"
android:layout_toRightOf="@+id/img_Contact_Icon"
android:text="testname"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvPartnerRegion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/img_Contact_Icon"
android:layout_alignLeft="@+id/tvContactName"
android:layout_marginBottom="5dp"
android:text="@string/tvFrom"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/RL_footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
>
<EditText
android:id="@+id/etChatInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/btnSend"
android:ems="10"
android:hint="@string/etWriteMessageHint"
android:maxLines="6" />
<Button
android:id="@+id/btnSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="@string/btnSend" />
</RelativeLayout>
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/RL_footer"
android:layout_below="@+id/RL_header"
android:layout_centerHorizontal="true"
android:divider="@android:color/transparent"
android:dividerHeight="10.0sp" >
</ListView>
答案 0 :(得分:1)
<LinearLayout
android:id="@+id/lay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#000000"
android:gravity="center|left"
android:orientation="horizontal"
android:weightSum="3" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.8"
android:gravity="center"
android:padding="10dip" >
<EditText
android:id="@+id/Box"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/message_focus"
android:hint="message_title"
android:imeOptions="actionDone"
android:padding="8dip"
android:singleLine="true"
android:textColor="#333"
android:textSize="12dip" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="0.6"
android:gravity="center"
android:paddingLeft="5dip" >
<Button
android:id="@+id/Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher" />
</LinearLayout>
</LinearLayout>