我正在尝试在Android上创建此搜索栏

时间:2019-05-02 15:18:07

标签: android android-layout android-toolbar android-search

我正在尝试在Android上创建此搜索栏,其中固定了左侧的放大镜,搜索框中的背景是带有圆角的白色,左侧,后退按钮,右侧,搜索之间的空格盒子,右边是16dp。有什么更好的方法?

我尝试使用menuitem,但我并不幸运。

2 个答案:

答案 0 :(得分:3)

Android有一个现成的搜索框,如果您导入android.widget.SearchView,则可以使用它。它具有您所需要的大多数(如果不是全部)功能,并且已经完成。您只需要将其添加到布局中即可。还有一些方法会在有人在“搜索”框中键入或单击放大镜时触发。您可以根据需要隐藏放大镜和/或X图标,或按示例显示它们。最好使用标准的Android SearchView,而不是编写自己的Android SearchView,因为那样,它将遵循每个用户已经熟悉的标准UI准则。

您可以通过在.xml布局文件中添加填充来调整间距。

答案 1 :(得分:0)

我找到的解决方案是将SearchView放在toolbar内:

<android.support.v7.widget.Toolbar
    android:id="@+id/restaurant_search_menu_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="4dp"
    android:theme="@style/MYSTYLE"
    app:contentInsetStartWithNavigation="0dp"
    app:contentInsetStart="0dp"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
 android:subtitleTextAppearance="@style/MYSTYLE.SubTitle.TextAppearance">

    <SearchView
        android:id="@+id/menu_search_view"
        android:layout_width="match_parent"
        android:layout_height="36dp"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:imeOptions="actionDone"
        android:closeIcon="@drawable/ic_dls_glyph_close"
        android:searchIcon="@drawable/ic_dls_icon_search_filled"
        android:background="@drawable/white_background_rounded"
        android:iconifiedByDefault="false"
        tools:queryHint="Search for a menu item"/>

</android.support.v7.widget.Toolbar>