实现searchview自定义工具栏

时间:2017-05-31 16:58:35

标签: java android xml android-layout toolbar

我有一个我自己创建的工具栏,一个自定义工具栏,并且想要在上面放置一个searchview,所以每当我点击它取代我的工具栏的图标时。

我的自定义工具栏:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/emerald">
    <ImageView
        android:id="@+id/arrow_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_weight="0"
        android:src="@drawable/ic_002_keyboard_left_arrow_button"
        android:onClick="previousActivity"
        android:tint="@color/white"/>
    <com.example.afcosta.inesctec.pt.android.Helpers.NexusBoldTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/white"
        android:layout_gravity="left"
        android:layout_marginLeft="25dp"
        android:id="@+id/toolbar_title"
        android:textSize="@dimen/toolbar_title" />
    <ImageView
        android:id="@+id/user_ic"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_weight="0"
        android:src="@drawable/ic_user"
        android:onClick="userProfile"
        android:layout_marginRight="25dp"
        android:tint="@color/white"/>
    <ImageView
        android:id="@+id/user_ic2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_weight="0"
        android:src="@drawable/ic_search_black_24dp"
        android:tintMode="@color/white"
        android:onClick="userProfile"
        android:layout_marginRight="25dp"
        android:tint="@color/white"/>



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

我将其包含在其他活动中:

   <include
        layout="@layout/custom_toolbar"
        android:id="@+id/my_toolbar"
        tools:layout_constraintTop_creator="1"
        tools:layout_constraintLeft_creator="1"
        app:layout_constraintTop_toTopOf="parent"
        tools:layout_editor_absoluteX="0dp" />

现在我想在这个自定义工具栏上使用searchview,但我甚至无法添加它,任何帮助?

1 个答案:

答案 0 :(得分:0)

使用项目

创建菜单
<item
        android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_search"
        app:showAsAction="always"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="Search"/>

在您的活动中

@Override
    public boolean onCreateOptionsMenu( Menu menu) {
        getMenuInflater().inflate( R.menu.menu_main, menu);

        MenuItem search = menu.findItem( R.id.action_search);
        final SearchView searchView = (SearchView) search.getActionView();
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                //Do your action
                return true;
            }

            @Override
            public boolean onQueryTextChange(String newText) {

                return false;
            }
        });

        return true;
    }