0

在我的应用程序中,我在 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>
4

3 回答 3

3

as long as your linearlayout just contains one element, so you can delete it.

you have to use android:layout_below="@+id/inputSearch" in your listview

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

If you don't want to remove the linearlayout

you can use this:

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

In the previous code, I just gave an ID to the linearlayout and made the listview below it

于 2013-05-11T20:31:19.697 回答
1

您应该用 LinearLayout 替换您的父 RelativeLayout。或者将子视图彼此相对放置,例如 android:layout_below,然后将子视图彼此对齐。否则每个孩子将与父母的左上角对齐。

于 2013-05-11T20:23:24.593 回答
0

将您的第二个 ListView 告诉您layout:below的 LinearLayout。

于 2013-05-11T20:44:19.830 回答