2017-11-06 13 views
0

グッドモーニング拝啓検索ビューの提案が2ツールバー

では動作しませんあなたは下の画像で見ることができるように私はのWhatsAppの検索バーを再現することができた。このため

私は2つのツールバーと2を作成しました

menu_item.xml

<?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="@drawable/ic_search" 
     android:title="@string/action_search" 
     app:showAsAction="always" /> 
</menu> 

menu_search.xm:以下に示すように、メニューそれはいくつかのテストIをやって、働いていませんでしたが、私はSearchRecentSuggestionsを実装

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/searchtoolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:layout_alignParentTop="true" 
    app:layout_scrollFlags="scroll|enterAlways" 
    android:background="@color/colorTextPrimary" 
    android:fitsSystemWindows="true" 
    app:collapseIcon="@drawable/ic_arrow_back" 
    app:titleTextColor="@color/colorPrimary" 
    /> 

search_toolbar.xml内部activity_main.xml

   <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:layout_alignParentTop="true" 
       android:background="?attr/colorPrimary" 
       app:layout_scrollFlags="scroll|enterAlways" 
       android:fitsSystemWindows="true" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

ツールバーの内側リットル

<?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_filter_search" 
     android:icon="@drawable/ic_search" 
     android:title="Search" 
     app:actionViewClass="android.support.v7.widget.SearchView" 
     app:showAsAction="collapseActionView|always" /> 
</menu> 

ツールバー私がインフレータを使用して

Case 1

Case 2

使用されるコード

@Override 
public boolean onCreateOptionsMenu(final Menu menu) { 

    getMenuInflater().inflate(R.menu.menu_search, menu); 

    SearchManager searchManager=(SearchManager)getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = (SearchView) menu.findItem(R.id.action_filter_search).getActionView(); 
    sView = searchView; 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    searchView.setMaxWidth(Integer.MAX_VALUE); 
    return super.onCreateOptionsMenu(menu); 
} 

私が試した:それは下の画像に示されているようしかし、私はアニメーションを失ってしまう、onCreateMenuOptionsに直接menu_search menu_itemsの後にmenu_searchを展開するだけでなく、期待される結果も得られませんでした。私は私が通常のテストから戻った後、いくつかの単語を登録した後、彼らがデザインに現れたので、私はSearchViewを入力しています何を登録していないことを見ることができた分析を行う

@Override 
public boolean onCreateOptionsMenu(final Menu menu) { 

    getMenuInflater().inflate(R.menu.menu_items, menu); 

    Toolbar searchTool = findViewById(R.id.searchtoolbar); 
    searchTool.inflateMenu(R.menu.menu_search); 
    Menu searchM = searchTool.getMenu(); 
    SearchView itemS = (SearchView)searchM.findItem(R.id.action_filter_search).getActionView(); 
    SearchManager searchManager=(SearchManager)getSystemService(Context.SEARCH_SERVICE); 
    sView = itemS; 
    itemS.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    itemS.setMaxWidth(Integer.MAX_VALUE); 
    return true; 
} 

Case 5

アニメーション。

Case 3

私は2つのメニューを膨らませるか、この第二のツールバーでこのレジストリを有効にして、これを達成することができる任意の可能性はありますか?ヘルプ

答えて

0

ため

Case 4

おかげで私はそれがこの問題の解決策を見つけることです。

まず、onCreateMenuOptionsで2つのメニューを展開することはできません。この状況でSearchSuggestionの動作を実現するには、私のケースhandleSearchでメソッドを作成してSearchListenerに入れ、検索提案の問題を解決します。 。

関連する問題