ListView的RelativeLayout没有正确显示

时间:2011-11-16 13:22:12

标签: android listview relativelayout

我疯狂地试图让相对布局工作。我遇到了ListView的问题,listView总是显示一个空的空间,大约是一个listView元素高度的两倍,如果列表足够大可以滚动或不滚动(通常列表容纳4个元素而不需要滚动)

要解决这个问题,我正在尝试实现RelativeLayout。我在顶部有一个TextView,在底部有一个,我的列表视图位于中间。 textView必须在我的listview上“粘合”,我在空白空间问题之前使用LinearLayout,现在我有了这个相对布局:

    <ScrollView
 xmlns:android="http://schemas.android.com/apk/res/android"
     android:background="@drawable/background"
     android:layout_height="fill_parent"
     android:layout_width="fill_parent">

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

     ...
            <RelativeLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                <TextView
                    android:id="@+datatrade/tv_itens"
                    android:layout_width="fill_parent" 
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:text="Itens:" />

                <TextView
                    android:id="@+datatrade/tv_value"
                    android:layout_width="fill_parent" 
                    android:layout_height="wrap_content"
                    android:text="Value:" />                                        

                <ListView android:layout_width="fill_parent"
                    android:layout_height="200px"
                    android:layout_below="@datatrade/tv_itens"
                    android:layout_above="@datatrade/tv_value"
                    android:id="@+id/list_product"
                    />

            </RelativeLayout>
     ...

问题是,我只是显示了我的第二个文本视图,其中包含“值:”,而没有别的! android的所有其他相对布局都被忽略了!

有谁知道会出现什么问题?

3 个答案:

答案 0 :(得分:3)

 <TextView
                android:id="@+datatrade/tv_value"
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:text="Value:" />   

您尚未声明应显示此textview的位置。

答案 1 :(得分:2)

你必须指定每个对象彼此相关。否则,相对布局无法理解你定位对象的位置,也就没有相对性。

选中此项以了解对象之间的相对性以及如何定位它们

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:background="#CCE6FF">

<ScrollView android:id="@+id/ScrollView01"
    android:layout_width="wrap_content" android:layout_height="wrap_content">

    <TextView android:text="@+id/TextView01"    android:id="@+id/dialog_desc_textview"
        android:layout_width="wrap_content" android:layout_height="wrap_content" 
         android:textSize="18dip" android:textColor="#000000"/>

</ScrollView>

<Button android:id="@+id/dialog_goToDesc_button"  android:layout_below="@id/ScrollView01"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="Satın Al" />

<Button android:id="@+id/dialog_buy_button" android:layout_below="@id/ScrollView01"
    android:layout_toRightOf="@id/dialog_goToDesc_button" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="Detaya git" />

<Button android:id="@+id/dialog_cancel_button"
    android:layout_toRightOf="@id/dialog_buy_button" android:layout_below="@id/ScrollView01"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="Kapat" />

</RelativeLayout>

答案 2 :(得分:1)

试试这个:

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

            <RelativeLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                <TextView
                    android:id="@+id/tv_itens"
                    android:layout_width="fill_parent" 
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:text="Itens:" />

                <TextView
                    android:id="@+id/tv_value"
                    android:layout_width="fill_parent" 
                    android:layout_height="wrap_content"
                    android:text="Value:" 
                    android:layout_below="@+id/list_product"/>                                        

                <ListView android:layout_width="fill_parent"
                    android:layout_height="200dp"
                    android:layout_below="@+id/tv_itens"
                    android:id="@+id/list_product"
                    />

            </RelativeLayout>
</LinearLayout>

您需要告诉ListView在第一个TextView下面,然后将第二个TextView放在ListView下面。

此外,您的ID似乎有点奇怪,我在复制您的代码时收到警告,请尝试使用@ + id来确定。

最后你不应该使用px作为大小,而是使用相对的dp。