Android SearchView无法正确定位

时间:2016-03-30 17:59:16

标签: android listview

我在这里下载了一些示例代码https://trinitytuts.com/get-contact-list-and-show-in-custom-listview-android/,用于搜索和列出手机中的联系人。生成的应用程序构建并加载良好。我相信它使用Android搜索小部件作为我的主要活动的顶部:

import android.widget.SearchView

(但是我没有在某些来源中看到的searachable.xml文件 是此搜索小组件的一项功能)

根据Google的说法,我相信searchview小部件可以 位于活动的任何地方(我不希望它在顶部 活动,我想在底部): http://developer.android.com/guide/topics/search/search-dialog.html#TheBasics

根据谷歌在上面的链接中,搜索对话框始终显示在活动的顶部,但我相信小部件可以放置在不同的位置。

但是当我尝试在我的活动中更改Searchview的位置时,它不会显示。

例如,这在我的activity_main xml中运行正常,搜索视图位于页面顶部:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <SearchView

        android:background="#5b74a8"
        android:queryHint="howdy"
        android:padding="8dp"
        android:id="@+id/searchView"
        android:drawableLeft="@android:drawable/ic_menu_search"
        android:layout_width="match_parent"
        android:singleLine="true"
        android:layout_gravity="right"
        android:layout_height="wrap_content"></SearchView>

    <ListView

        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/contacts_list"></ListView>

</LinearLayout>

但在这种情况下,SearchView根本不可见。我有什么想法可以将搜索小部件放在底部吗?

<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity">


    <ListView

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/contacts_list"></ListView>

    <SearchView

        android:background="#5b74a8"
        android:queryHint="howdy"
        android:padding="8dp"
        android:id="@+id/searchView"
        android:drawableLeft="@android:drawable/ic_menu_search"
        android:layout_width="match_parent"
        android:singleLine="true"
        android:layout_gravity="right"
        android:layout_height="wrap_content"></SearchView>

</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您的列表视图隐藏了SearchView ..

您可以执行以下操作以查看最后的结果

<?xml version="1.0" encoding="utf-8"?>
<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="com.codepath.mytestapp.MainActivity">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:tools="http://schemas.android.com/tools"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:orientation="vertical"
                  tools:context=".MainActivity">


        <ListView

            android:id="@+id/contacts_list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>


    </LinearLayout>

    <SearchView
        android:id="@+id/searchView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_gravity="right"
        android:background="#5b74a8"
        android:drawableLeft="@android:drawable/ic_menu_search"
        android:padding="8dp"
        android:queryHint="howdy"
        android:singleLine="true"
        />
</RelativeLayout>