列表视图和屏幕底部的按钮

时间:2014-05-26 08:01:10

标签: android android-layout listview button relativelayout

我已经尝试了一切,到处查找......!

我正在尝试将一个列表视图放在滚动视图中,并且屏幕底部的按钮已固定。 这是我的代码:

<?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:orientation="vertical" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/rlCommento" /> 

    <RelativeLayout
        android:id="@+id/rlCommento"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true" >

        <EditText
            android:id="@+id/etCCommento"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_weight="15"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <Button
            android:id="@+id/bCInviaCommento"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/etCCommento"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_weight="85"
            android:text="Commenta!" />

    </RelativeLayout>

</RelativeLayout>

它似乎在项目中工作,但是当我在模拟器上尝试它时,它不起作用! 有什么建议?谢谢!

6 个答案:

答案 0 :(得分:1)

这就是你要做的事情:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:text="Button" />

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button1"
    android:layout_centerHorizontal="true" >

</ListView>

</RelativeLayout>

答案 1 :(得分:0)

您可以使用LinearLayout。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"

        android:layout_weight="1"/>

    <RelativeLayout
        android:id="@+id/rlCommento"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        ...

    </RelativeLayout>

</LinearLayout>

答案 2 :(得分:0)

首先:不要将列表视图放在滚动视图中 第二:使最高父母宽度n高度与父母相匹配 第三:在底部添加一个新布局并在此布局中添加按钮,类似这样,给布局一些重量

<LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:paddingBottom="7dp"
            android:paddingTop="7dp" >

            <Button
                android:id="@+id/score_board"
                android:layout_width="wrap_content"
                android:layout_height="55dp"
                android:layout_gravity="center"
                android:layout_weight="1"
                android:text="OK" />
        </LinearLayout>

答案 3 :(得分:0)

// Try this way,hope this will help you to solve your problem...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="5dp">

    <ListView
        android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"/>

    <LinearLayout
        android:id="@+id/rlCommento"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp">

        <EditText
            android:id="@+id/etCCommento"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <Button
            android:id="@+id/bCInviaCommento"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:text="Commenta!" />

    </LinearLayout>


</LinearLayout>

答案 4 :(得分:0)

要做到这一点,你必须使用LinearLayout而不是RelativeLayout,并设置ListView weight = 1和layout_height = 0dp。 这应该根据需要起作用:

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

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1" /> 

<RelativeLayout
    android:id="@+id/rlCommento"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/etCCommento"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_weight="15"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/bCInviaCommento"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/etCCommento"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_weight="85"
        android:text="Commenta!" />

</RelativeLayout>

答案 5 :(得分:0)

希望我能正确理解你的问题。无需在scrollview中保留ListView。只需尝试以下代码段即可。它可能适合你。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ListView
        android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         /> 

<Button
            android:id="@+id/bCInviaCommento"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:text="Commenta!"
            android:layout_below="@id/list" />

</RelativeLayout?