Android:ListView在其他元素之上

时间:2012-03-16 05:12:52

标签: android android-layout android-listview

我的布局看起来像我想要的......直到我在列表中获得了很多项目,然后列表涵盖了Edittext和Button元素。

我看不出我有什么不对。当我设置ListView android:layout_height =“fill_parent”时,即使列表为空,它也会覆盖我的按钮。

这应该是一个非常简单的布局。我花了一个多小时搞乱它。

任何帮助?

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

    <EditText
        android:id="@+id/txt_editText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="@string/str_addSnippetHint" />

    <Button
        android:id="@+id/btn_addSnipet"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/addSnippet" />
</LinearLayout>

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/txt_editText"
    android:layout_alignParentTop="true"
    android:drawSelectorOnTop="false" />

4 个答案:

答案 0 :(得分:3)

在Button

之后将其放在LinearLayout标记内
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:drawSelectorOnTop="false" />


Remove this line   android:layout_above="@id/txt_editText"

如果你想在Button上方显示listView,那么使用相对布局。然后设置相对性

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
 <EditText
    android:id="@+id/txt_editText"
    android:layout_width="fill_parent" android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_height="wrap_content"
    android:hint="@string/str_addSnippetHint" />
 <Button  android:id="@+id/btn_addSnipet" android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="@string/addSnippet" />
<ListView android:id="@android:id/list"
android:layout_width="fill_parent" android:layout_above="@+id/btn_addSnipet"
android:layout_height="wrap_content"     android:layout_above="@id/txt_editText"
android:layout_alignParentTop="true"    android:drawSelectorOnTop="false" />
</RelativeLayout>

答案 1 :(得分:0)

ListView内添加LinearLayout,而不是创建单独的布局..

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

    <EditText
        android:id="@+id/txt_editText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="@string/str_addSnippetHint" />

    <Button
        android:id="@+id/btn_addSnipet"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/addSnippet" />
<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/txt_editText"
    android:layout_alignParentTop="true"
    android:drawSelectorOnTop="false" />

</LinearLayout>

答案 2 :(得分:0)

尝试使用此代替您的代码

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

 <EditText
   android:id="@+id/editText"
   android:layout_width="fill_parent"  
   android:layout_alignParentLeft="true"
   android:layout_height="wrap_content"
   android:hint="edittext" />
    <Button
      android:id="@+id/btn_addSnipet"  
      android:layout_alignParentRight="true"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content" 
      android:text="button" />
   <ListView
      android:id="@android:id/list"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_above="@id/txt_editText"
      android:layout_alignParentTop="true"
      android:drawSelectorOnTop="false" />
 </LinearLayout>

答案 3 :(得分:0)

尝试:

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

    <ListView android:id="@android:id/list" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:layout_alignParentTop="true"
        android:drawSelectorOnTop="false" />

    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:layout_alignParentBottom="true"
        android:layout_above="@id/list">
        <EditText android:id="@+id/txt_editText"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:layout_weight="1" android:hint="@string/str_addSnippetHint" />

        <Button android:id="@+id/btn_addSnipet" android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:layout_weight="1"
            android:layout_below="@id/txt_editText" android:text="@string/addSnippet" />
    </RelativeLayout>

</RelativeLayout>