Android RelativeLayout重叠
问题描述:
我在Android的一个聊天应用程序的相对布局。问题是,我的屏幕上的列表视图增长时,最后的元素隐藏在文本框和我放在底部的按钮后面。Android RelativeLayout重叠
我使用下面的布局文件。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/PreviousChatsButton"
android:padding="5dip"
android:text="@string/ViewPreviousChats"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:focusable="true"
>
</TextView>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<TextView android:id="@+id/NoChatsMsg"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/NoNewChatMsg"
/>
<Button
android:id="@+id/SubmitButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="@string/Submit"
android:onClick="SubmitButtonClick" />
<EditText
android:id="@+id/Chatbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/SubmitButton"
android:layout_alignBottom="@id/SubmitButton"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/SubmitButton"
android:ems="10"
android:inputType="text" >
</EditText>
</RelativeLayout>
答
你想要做的是在LinearLayout
做android:layout_above="@+id/Chatbox"
,这将确保它不会低于它
+0
thnx工作 – Mj1992 2012-07-23 16:23:16
答
//尝试此其工作正常,我
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/PreviousChatsButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:gravity="center_horizontal"
android:padding="5dip"
android:text="ViewPreviousChats" >
</TextView>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/NoChatsMsg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/NoNewChatMsg" />
<Button
android:id="@+id/SubmitButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:onClick="SubmitButtonClick"
android:text="@string/Submit" />
<EditText
android:id="@+id/Chatbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/SubmitButton"
android:layout_alignBottom="@id/SubmitButton"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/SubmitButton"
android:ems="10"
android:inputType="text" >
</EditText>
</LinearLayout>
</LinearLayout>
答
使用android:layout_above
来避免这个问题:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/SubmitButton" ... />
<LinearLayout
android:layout_above="@id/SubmitButton" ... >
...
</LinearLayout>
请注意,你有LinearLayout中之前声明你的按钮,这个工作。
放在LinearLayout中。 – 2012-07-23 16:17:54