2017-01-15 1 views
2

SearchViewは常に展開され、他のアイテムは画面外に移動しますが、設定されている場合はapp:showAsAction="always|collapseActionView"になります。Androidツールバーの検索が広すぎて他のアイテムを移動できません

toolbarをFacebookブックアプリのように構築したいと考えています。

は二つの条件があります。

  1. 三項目:searchView &他の二つの項目
  2. キープは、私は両方を行っていた

を拡大ではなく、正しい位置にあるアイテム。 problem position

これが正しい位置にある(私はそれが拡大してくださいしたい): correct position

ここに私のコードです:

レイアウト

<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     android:elevation="2dp" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
     app:titleTextColor="@android:color/white" /> 
</android.support.design.widget.AppBarLayout> 

メニュー

<?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/action_search" 
     android:icon="@android:drawable/ic_menu_search" 
     android:title="@string/tool_search_hint" 
     app:actionViewClass="android.support.v7.widget.SearchView" 
     app:showAsAction="always" /> 
    <item 
     android:id="@+id/action_settings" 
     android:title="@string/tool_settings" 
     android:orderInCategory="200" 
     app:showAsAction="never" /> 
    <item 
     android:id="@+id/action_user" 
     android:icon="@drawable/ic_user" 
     android:title="@string/tool_user" 
     android:orderInCategory="100" 
     app:showAsAction="always" /> 
</menu> 

java

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.toolbar_actions, menu); 

    MenuItem menuSearchItem = menu.findItem(R.id.action_search); 

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = (SearchView) menuSearchItem.getActionView(); 

    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

    searchView.setIconifiedByDefault(false); 

    return true; 
} 

答えて

0

searchView.setMaxWidth(400)を使用します。

関連する問題