Android:在relativelayout中,当我尝试将其对齐线性布局时Listview消失

时间:2013-08-26 20:03:28

标签: android android-layout listview alignment relativelayout

我试图制作一个包含listview的页面,其中包含一些textview和按钮。我不希望它固定在底部,除非它被推开。我正在考虑尝试使用listview在线性布局上方对齐的相对布局,但由于某种原因它根本没有显示

代码是

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/feet">
    </ListView>

    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:id="@id/feet"
    >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:id="@+id/total"
            android:textSize="32sp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:id="@+id/funds"
            android:textSize="32sp" 
            />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/buy" 
            android:id="@+id/buyB"
            android:textSize="32sp" 
            android:onClick="confirmTrans"
            />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/cancel" 
            android:id="@+id/canc"
            android:textSize="32sp" 
            android:onClick="cancelTrans"
            />
    </LinearLayout>
</RelativeLayout>

2 个答案:

答案 0 :(得分:2)

这是因为默认情况下,RelativeLayout将其元素定位在右上角。您需要向LinearLayout添加属性,例如

android:layout_alignParentBottom="true"

现在,您的LinearLayout将位于右上角,ListView位于窗口上方没有空间的ListView高于LinearLayout {1}}。

答案 1 :(得分:0)

如果您在ListView中遇到此类问题,请确保使用适当的充气方法。必须指定父视图组以确保正确的通货膨胀。

mLayoutInflater.inflate(R.layout.listitem, parent, false);

而不是

mLayoutInflater.inflate(R.layout.listitem, null);