我疯狂地试图让相对布局工作。我遇到了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的所有其他相对布局都被忽略了!
有谁知道会出现什么问题?
答案 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。