2015-06-26 11 views
5

ho list fragment in BaseActivity e voglio implementare la funzionalità di ricerca. ma action bar compact altezza cambia mentre click sul pulsante temal'action bar compatta cambia altezza quando searchitem expand

vedi sotto 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 nel frammento

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

risposta

7

fare riferimento anche a questo link. !!

risolto problema dopo un sacco di ricerca e trovato qualcosa.

potrebbe aiutarti anche tu !!

dopo aggiungere questo attributo nella 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>