2012-03-16 38 views
1

我的布局看起来像我希望它...直到我得到列表中的许多项目,然后在列表覆盖EDITTEXT和按钮元素的点。安卓:在其他元素之上的ListView

我看不出我有什么错。当我设置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" /> 

+0

看起来你的布局有两个顶级元素。如果这是你的实际代码,它甚至不应该编译。这里有一个提示,其中有一个RelativeLayout包含这两个。请发布整个布局,以便我们看到实际发生的情况。 – 2012-03-16 05:16:11

+0

其实,那是整体。 – Doug 2012-03-16 11:54:59

回答

3

按钮后,把这个标签的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" 

如果你想显示的ListView按钮上方就用相对layout.And然后设置相关

<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> 
+0

这一个看起来很有希望!在标记我的最终答案之前,我会尝试其他答案。感谢您花时间回复。 – Doug 2012-03-16 11:54:19

+0

您可以通过+ 1.And欣赏接受,如果它帮助你解决你的问题 – Sameer 2012-03-16 12:23:06

+0

我在你的第二个建议的XML去了。工作很棒!谢谢。 – Doug 2012-03-16 12:56:10

0

添加您ListViewLinearLayout而不是创建单独的布局里面..

<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> 
+0

我试过你的例子,但我把这个列表放在按钮下面。我切换了订单,列表在底部,但随后我添加了全屏的项目,编辑框和按钮从屏幕底部推开。 – Doug 2012-03-16 11:50:46

+0

@Doug:你的ListView是否可滚动? – 2012-03-16 11:54:59

+0

是的,我想。当我尝试下面提交的例子时,它会滚动,因为它应该有。 – Doug 2012-03-16 11:56:49

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> 
+0

感谢您的回复,但我无法使此布局正常工作。太多“无效的布局参数”消息,例如“LinearLayout:layout_alignParentRight中的无效布局参数”。 – Doug 2012-03-16 12:53:39

0

trythis:

<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> 
+0

感谢您的回复,但我无法使此布局正常工作。太多“无效的布局参数”消息,如“在RelativeLayout:layout_weight中无效的布局参数”。 – Doug 2012-03-16 12:55:13