在我的布局中,我需要一个标题,一个列表视图和一个带有TextView
的页脚。 TextView
需要最多可调整为5行。想想facebook聊天,你的朋友的名字,中间内容窗格和下面的文本框都有蓝色标题,当你输入内容时,它会增长:
[header] a fragment that takes up about 50dp
[content]
[content]
[content]
[content] something like a ViewGroup with a ListView in it
[content]
[content]
[content]
[footer] a ViewGroup that contains an EditText and Buttons
我尝试了各种不同的布局设置,但无法正确使用。页脚占据所有空间,或内容覆盖页脚。
这是我到目前为止所拥有的:
<LinearLayout ...>
<!-- Slot to put Header fragment in -->
<FrameLayout
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Here's where the content goes. This is supposed to be a ListView
inserted as a fragment -->
<FrameLayout
android:id="@+id/content"
... />
<include
android:id="@+id/footer"
... />
</LinearLayout>
我遗漏了layout_width
和layout_height
值为空,因为我不知道将它们设置为什么。
更新
最初,我认为问题是因为我的EditText
设置为maxLines=5
和TextMultiline
,但我尝试删除除了一个带有硬编码高度的按钮以外的所有内容,插入内容仍覆盖所有内容。我还尝试设置<footer below="content">
,然后content
刚刚设置了footer
答案 0 :(得分:1)
问题是所包含的footer
布局是另一个RelativeLayout
。 footer
布局包含设置layout_alignParentBottom="true"
的元素,这使得页脚布局占据整个屏幕。我不知道它为什么会那样做,但那就是发生的事情。
答案 1 :(得分:0)
为了创建这样的UI,创建一个布局
header.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="5dp"
android:text="xyz"
android:textSize="10dp" />
</LinearLayout>
页脚:
footer.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="5dp"
android:text="xyz"
android:textSize="10dp" />
</LinearLayout>
创建另一个包含listView的布局,如你所说: main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical" >
**<include layout="@layout/header.xml" android:layout_alignParentTop="true"/>**
<ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
>
</ListView>
**<include layout="@layout/footer.xml" android:layout_below="@+id/listview" android:layout_alignParentBottom="true"/>**
</RelativeLayout>
答案 2 :(得分:0)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="HEADER" />
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/chats"
android:layout_weight="1">
</ListView>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="5"
android:inputType="textMultiLine"
android:hint=" Please enter your Chat" />
</LinearLayout>