Search code examples
androidsearchviewandroid-actionbar-compat

action bar compact height changes when searchitem expand


i have list fragment in BaseActivity and want to implement search functionality. but action bar compact height changes while click on search item button

see below screenshot

enter image description here

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.android.bypeople.uber.BaseActivity" >

<item
    android:id="@+id/action_add"
    android:icon="@drawable/btn_profile_selector"
    android:orderInCategory="100"
    android:title="@string/action_add"
    android:visible="false"
    app:showAsAction="always"/>
<item
    android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_search"
    android:title="@string/action_search"
    android:visible="false"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="ifRoom"/>

onCreateOptionsMenu in fragment

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu,inflater);
    inflater.inflate(R.menu.base, menu);
    menu.findItem(R.id.action_add).setVisible(true);

    SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
    MenuItem searchItem = menu.findItem(R.id.action_search);
    searchItem.setVisible(true);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));

    searchView.setOnQueryTextListener(queryListener);

    queryListener = new OnQueryTextListener() {       

        @Override
        public boolean onQueryTextChange(String newText) {
            return false;
        }

        @Override
        public boolean onQueryTextSubmit(String query) {            
            Toast.makeText(getActivity(), "Searching for: " + query + "...", Toast.LENGTH_SHORT).show();
            return false;
        }
    };
}

Solution

  • Refer this link too.!!

    resolved issue after lots of search and found something.

    may help you too.!!

    after add this attribute in toolbar

    android:layout_height="?attr/actionBarSize"

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/ToolBarStyle"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/myPrimaryColor"
    android:minHeight="@dimen/abc_action_bar_default_height_material" >
    
    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textColor="@color/myTextPrimaryColor"
        android:layout_gravity="center" />
    
    </android.support.v7.widget.Toolbar>