1

我在 android 中有一个聊天应用程序的相对布局。问题是我屏幕上的列表视图在增长最后一个元素时隐藏在我放置在底部的文本框和按钮后面。

在此处输入图像描述

我正在使用以下布局文件。

<?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>
4

3 回答 3

4

你想做的是LinearLayout确保android:layout_above="@+id/Chatbox"它不会低于它

于 2012-07-23T16:19:01.260 回答
2

//试试这对我来说工作正常

<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>

于 2012-07-23T16:20:06.223 回答
1

用于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 之前声明您的按钮才能正常工作。

于 2012-07-23T16:20:57.390 回答