我的应用程序中RelativeLayout的一些问题

时间:2012-01-30 10:52:30

标签: android android-layout

我的应用包含ListViewTextView。我想将TextView安排到ListView以下。我尝试使用以下代码,但TextView消失了。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

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

 <TextView  
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:layout_below="@+id/android:list"
  android:text="@string/hello"
 />
</RelativeLayout>

感谢。

6 个答案:

答案 0 :(得分:3)

尝试使用此

替换您的XML
<?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="@+id/android:list" 
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_weight="1" /> 

 <TextView  
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:layout_below="@+id/android:list"
  android:text="@string/hello"
 />
</LinearLayout>

您根本不想使用相对布局。如果您需要它,只需用它替换LinearLayout。

答案 1 :(得分:2)

请尝试LinearLayout,如下所示。我认为这会产生你想要的东西。此布局将始终将TextView放在视图底部的列表下方。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="match_parent">

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

<TextView  
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:text="@string/hello"
  />
</LinearLayout>

答案 2 :(得分:1)

试试此代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
>  
<ListView android:id="@+id/android:list" 
 android:layout_height="match_parent"  
 android:gravity="center"
 android:cacheColorHint="#ffffffff" 
 android:layout_width="match_parent" 
 android:layout_above="@+id/add_workout_all_workout_list"></ListView>

<TextView android:layout_width="wrap_content"      
 android:id="@+id/add_workout_all_workout_list" android:layout_height="wrap_content" 
 android:text="textView" android:layout_alignParentBottom="true"  
 android:layout_alignParentLeft="true"/>

</RelativeLayout>  

答案 3 :(得分:0)

您对listview的宽度和高度使用了fill_parent,如下所示。所以它将占据整个屏幕。这样Text视图是不可见的。请根据您的设备分辨率将其更改为固定高度。

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

将fill_parent替换为100px或以下其他行,并尝试一次

  android:layout_height="fill_parent" /> 

答案 4 :(得分:0)

你可以通过2种方式将Textview放在listview下面。

  1. 采取相对布局并修复列表视图和位置的高度     它下面的textview。
  2. 采取LinearLayout并给予重量     水平方向。
  3. 希望你得到我说的话。

答案 5 :(得分:0)

如果您坚持使用RelativeLayout,请执行以下操作:

  1. 在你的xml中,首先在ListView(交换声明)之前声明你的TextView - 使用RelativeLayout时命令很重要
  2. 在TextView中,输入android:layout_alignParentBottom =“true”
  3. 在你的ListView中,把android:layout_above =“@ android / your_text_views_id_here”
  4. 删除所有其他定位属性。
  5. 应该工作。