在我的应用程序中,我在ListView上有一个带有EditText视图的活动。我遇到的一个简单问题是列表的最顶层元素是在EditText视图的“下面”。
我在Android方面不是很有经验,所以我不知道如何解决这个问题!
我的xml看起来像这样
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".AcceptDeliveriesMainActivity" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<!-- Editext for Search -->
<EditText android:id="@+id/inputSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/search_field_text"
android:inputType="textVisiblePassword"/>
</LinearLayout>
<!-- List View -->
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
答案 0 :(得分:3)
只要你的linearlayout只包含一个元素,就可以删除它。
您必须在列表视图中使用android:layout_below="@+id/inputSearch"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".AcceptDeliveriesMainActivity" >
<EditText
android:id="@+id/inputSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textVisiblePassword" />
<!-- List View -->
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/inputSearch" />
</RelativeLayout>
你可以用这个:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".AcceptDeliveriesMainActivity" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/llID"
android:orientation="horizontal" >
<!-- Editext for Search -->
<EditText
android:id="@+id/inputSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textVisiblePassword" />
</LinearLayout>
<!-- List View -->
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/llID" />
</RelativeLayout>
在前面的代码中,我刚给了linearlayout一个ID并在它下面创建了listview
答案 1 :(得分:1)
你应该用LinearLayout替换你的父RelativeLayout。或者将子视图相对于彼此放置,比如android:layout_below,然后将子项相互对齐。否则,每个孩子将对齐父母的左上角。
答案 2 :(得分:0)
将您的第二个ListView告诉layout:below
您的LinearLayout。