ListView下方的按钮

时间:2012-08-28 08:11:03

标签: android listview button android-linearlayout relativelayout

我有一组带有项目的listView。我想在列表下面添加2个按钮。但如果我喜欢这样:

    <?xml version="1.0" encoding="UTF-8"?>
    <LinearLayout

              xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/fileManager"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:gravity="center" >
     <LinearLayout

              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <ListView

        android:background="#000000"
        android:id="@+id/fileManagerList"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>
    <CheckedTextView  
             android:id="@+id/checkedTextItem" 
             android:layout_width="fill_parent" 
             android:layout_height="wrap_content" 
             android:gravity="center_vertical" 
             android:clickable="true"
             android:checkMark="?android:attr/listChoiceIndicatorMultiple"
             android:textColor="#000000"
             android:paddingLeft="10dip" 
             android:paddingRight="6dip" 
             android:typeface="sans" android:textSize="16dip"/> 

     </LinearLayout>
            <LinearLayout

              xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/fileManager"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="horizontal"
              android:gravity="center" 
              android:layout_alignBottom="@+id/fileManagerList">

             <Button
                android:id="@+id/attachFiles"
                android:layout_width="200dp"
                android:layout_height="55dp"
                android:background="#007FFF"
                android:gravity="center|center"

                android:text="Attach files"
                android:layout_alignBottom="@+id/fileManagerList"
                android:textColor="#FFFFFF"
                android:textSize="18dp"
                android:textStyle="bold" />

            <Button
                android:id="@+id/cancelFiles"
                android:layout_width="82dp"
                android:layout_height="55dp"
                android:background="#838B83"
                android:gravity="center|center"  
                android:layout_alignRight="@+id/attachFiles"
                android:layout_alignBottom="@+id/fileManagerList"
                android:text="Do not attach"
                android:textColor="#FFFFFF"
                android:textSize="18dp"
                android:textStyle="bold" />
        </LinearLayout>
</LinearLayout>

我的按钮显示在ListView的每一行中。我尝试以相同的方式使用RelativeLayout,但我得到了正确的列表,按钮位于底部,但它们覆盖了列表的最后一项。我该如何实现呢?

2 个答案:

答案 0 :(得分:2)

尝试此布局,您可以使用以下XML布局

实现目标
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relRingtone"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"> 

            <ListView
             android:id="@+id/fileManagerList"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"   
             android:choiceMode="singleChoice"
             android:contentDescription="@string/ringtone"
             android:layout_marginLeft="3dip" 
             android:textSize="2dp" />

            <LinearLayout
            android:id="@+id/closecalmlayout"
            android:layout_below="@+id/fileManagerList" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:weightSum="1.0" >

              <Button
                  android:id="@+id/btnOk"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content" 
                  android:layout_marginLeft="5dip"
                  android:layout_marginTop="5dip"
                  android:layout_weight=".50"
                  />

              <Button
                  android:id="@+id/btnCancel"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_marginLeft="5dip"
                  android:layout_marginRight="5dip"
                  android:layout_marginTop="5dip"
                  android:layout_weight=".50"
                   />

            </LinearLayout>  
     </RelativeLayout>

希望它有所帮助。

答案 1 :(得分:-1)

这是因为您在任何地方使用 @ + id ,无论您在哪里引用任何ID。例:

android:layout_alignBottom="@+id/fileManagerList"

改为使用“@id/”。

另外,试试:

android:layout_below="@id/fileManagerList" //在按钮中添加此属性。