简体   繁体   中英

Implementing searchview custom toolbar

I have a toolbar that i created by myself, a custom toolbar and want to place a searchview above so everytime i click the icon it replaces my toolbar.

My Custom toolbar:

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

i include it on other activities like this:

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

now i want to use the searchview on this custom toolbar, but i can't even add it, any help?

Create a menu with item

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

In your activity

@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;
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM