現在ToolBarに検索機能を実装するためにSearchViewを使って実装しました。
ToolBarの検索ボタンから検索バーが表示されてそれっぽい挙動にはなったのですが、検索バーが表示された時に他にToolBarに追加してあるボタンが一緒に表示されてしまいます。
この実装方法だとこうなってしまうのでしょうか?
検索ボタンからこのように他のToolBarの項目が出ないようにはどうすれば良いでしょうか?
###該当のソースコード
MainActivity.java
java
1public class MainActivity extends AppCompatActivity { 2 3 private SearchView searchView = null; 4 Toolbar toolbar = null; 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_main); 10 11 // ツールバーをアクションバーとしてセット 12 toolbar = (Toolbar) findViewById(R.id.tool_bar); 13 setSupportActionBar(toolbar); 14 15 //メニューボタンを表示する.Toolbarでもこれを実装しないと 16 @Override 17 public boolean onCreateOptionsMenu(Menu menu) { 18 // menu_main.xmlファイルに設定されたメニューを表示する。 19 getMenuInflater().inflate(R.menu.menu_main, menu); 20 21 getMenuInflater().inflate(R.menu.menu_search, menu); 22 MenuItem searchItem = menu.findItem(R.id.searchView); 23 searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 24 return true; 25 } 26}
menu_main.xml
xml
1<menu xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:app="http://schemas.android.com/apk/res-auto"> 3 4 <item 5 android:id="@+id/action_add" 6 android:icon="@android:drawable/ic_menu_add" 7 android:title="test" 8 android:orderInCategory="100" 9 app:showAsAction="ifRoom" /> 10 11 <item 12 android:id="@+id/action_setting" 13 android:orderInCategory="102" 14 android:title="設定" 15 app:showAsAction="never" /> 16</menu>
menu_search.xml
xml
1<?xml version="1.0" encoding="utf-8"?> 2<menu xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto"> 4 5 <item 6 android:id="@+id/searchView" 7 android:icon="@android:drawable/ic_menu_search" 8 android:orderInCategory="102" 9 app:showAsAction="always" 10 android:title="検索" 11 app:actionViewClass="android.support.v7.widget.SearchView"/> 12 13</menu>
追記:
menu_search.xmlのshowAsActionにcollapseActionViewを追加したところ、SearchViewに戻るボタンが実装されたのと同時に検索ボタン押下時にsetOnMenuItemClickListenerで他のメニューと同じように拾えるようになったのですが、setVisibleで消したボタンを再度表示するタイミングであるこの戻るボタン押下時のイベントが拾えません・・・。
xml
1<?xml version="1.0" encoding="utf-8"?> 2<menu xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto"> 4 5 <item 6 android:id="@+id/searchView" 7 android:icon="@android:drawable/ic_menu_search" 8 android:orderInCategory="102" 9 app:showAsAction="ifRoom|collapseActionView" 10 android:title="検索" 11 app:actionViewClass="android.support.v7.widget.SearchView"/> 12 13</menu>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/23 11:17
2017/05/23 11:54