0

我有一个出现在两个按钮后面的 ListView。我希望 ListView 填充按钮下方的区域。我已经尝试过此链接中的解决方案: Android Layout with ListView and Buttons and Listview with button below not working proper。但是,它不起作用。您能告诉我如何将 ListView 保持在按钮下方吗?

在此处输入图像描述

这是我的代码:

<?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"
    android:layout_weight="1.0"
    >

    <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
           android:layout_below="@id/layoutButtons"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:weightSum=".50"  />

        <LinearLayout
 android:id="@+id/layoutButtons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
           android:layout_weight="1.0" >

        <Button
            android:id="@+id/btnLogout"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".70"
            android:text="left" />

        <Button
            android:id="@+id/btnMessage"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".30"
            android:text="right" />
    </LinearLayout>

</RelativeLayout>
4

3 回答 3

1

稍微修改了 Leoa 的答案:

<LinearLayout
    android:id="@+id/layoutButtons"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1.0" >

    <Button
        android:id="@+id/btnLogout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".70"
        android:text="left" />

    <Button
        android:id="@+id/btnMessage"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".30"
        android:text="right" />
</LinearLayout>

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/layoutButtons"
    android:weightSum=".50" />

删除了

android:layout_alignParentTop="true"

从 ListView 并将 ListView 的 id 更改为 @android:id/list。此外,ListView 必须放置在带有按钮的 LinearLayout 下方,否则您将无法在 ListView 中使用 android:layout_below。

于 2012-09-28T17:37:24.680 回答
1

您可以在列表视图的标题中添加按钮:

使用按钮listview_header.xml创建布局

   <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutButtons"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
       android:layout_weight="1.0" >

    <Button
        android:id="@+id/btnLogout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".70"
        android:text="left" />

    <Button
        android:id="@+id/btnMessage"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".30"
        android:text="right" />
</LinearLayout>     

声明视图:

 private ListView listView;
 private ViewGroup mListHeaderView;

onCreateView()

 mListHeaderView = (ViewGroup)inflater.inflate(R.layout.listview_header,
 listView, false);

onActivityCreated()

listView = this.getListView();
listViewTickets.addHeaderView(mListHeaderView,null,false);
于 2012-09-28T17:28:34.557 回答
1

尝试以下操作:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >

        <LinearLayout
 android:id="@+id/layoutButtons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
           android:orientation="horizontal" >

        <Button
            android:id="@+id/btnLogout"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".70"
            android:text="left" />

        <Button
            android:id="@+id/btnMessage"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".30"
            android:text="right" />
    </LinearLayout>

    <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</RelativeLayout>

希望这可以帮助。

于 2012-09-28T17:11:42.650 回答