Android - 创建自定义 SearchView

Shu*_*dra 5 android android-layout searchview

我有一个包含 SearchView 和 ListView 的列表活动。我希望 SearchView 类似于谷歌地图 android 应用程序中存在的内容。

在此处输入图片说明

目前我在 activity_main.xml 中的 SearchView 代码是

<SearchView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:queryHint="Search restaurants"
        android:iconifiedByDefault="false"
        android:id="@+id/searchView" />
Run Code Online (Sandbox Code Playgroud)

有人可以指导我如何获得如上所述的自定义 SearchView。

ani*_*nil 1

您必须使用图标和 Ed​​itText 创建布局。像这样的东西:

<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="@dimen/abc_action_bar_default_height"
        >

    <ImageButton
            android:id="@+id/btnGoToMap"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:padding="18dp"
            android:background="@android:color/transparent"
            android:src="@drawable/btn_go_to_map_selector"
            android:contentDescription="@string/contentDescription"
            />

    <ImageButton
            android:id="@+id/btnCleanSearch"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:paddingTop="18dp"
            android:paddingLeft="18dp"
            android:paddingBottom="18dp"
            android:paddingRight="27.5dp"
            android:background="@android:color/transparent"
            android:src="@drawable/btn_clean_search_selector"
            android:contentDescription="@string/contentDescription"
            />
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="60dp"
            android:layout_marginRight="60dp"
            >
        <ImageButton
                android:id="@+id/btnShowSearch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:layout_gravity="center_vertical"
                android:background="@android:color/transparent"
                android:src="@drawable/btn_show_search_field_selector"
                android:contentDescription="@string/contentDescription"
                />
        <EditText
                android:id="@+id/fldSearchPhrase"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:inputType="text"
                android:singleLine="true"
                android:textSize="20sp"
                android:textColor="@android:color/black"
                >
                <requestFocus/>
        </EditText>
    </LinearLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

它还更加灵活,允许您管理布局的各个部分。