位置ListView下方按钮

时间:2012-09-28 17:03:50

标签: android xml listview button

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

enter image description here

这是我的代码:

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

3 个答案:

答案 0 :(得分: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>

希望这有帮助。

答案 1 :(得分: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);

答案 2 :(得分: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。