Android 解決嵌套Fragment無法接收onCreateOptionsMenu事件的問題
前言
嵌套的二級Fragment無法接收onCreateOptionsMenu事件的問題,設(shè)置了setHasOptionsMenu也不管用。
正文
補充說明:
如果通過緩存Fragment手動調(diào)用二級Fragment,可能會出現(xiàn)莫名其妙的問題,比如更多Menu不顯示。
解決辦法:
在一級Fragment中添加Menu,可以在一級onOptionsItemSelected中手動調(diào)用二級的此方法來處理相關(guān)事件。
示例代碼:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
switch (getSelectedPosition()) {
case 1:
inflater.inflate(R.menu.menu1, menu);
break;
case 2:
inflater.inflate(R.menu.menu2, menu);
break;
case 0:
default:
inflater.inflate(R.menu.menu3, menu);
break;
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Fragment fragment = getFragmentByPosition(getSelectedPosition());
if (fragment != null)
fragment.onOptionsItemSelected(item);
return super.onOptionsItemSelected(item);
}
代碼說明:
示例代碼是一級Fragment,getFragmentByPosition返回的是二級Fragment。
以上就是Android 解決 Fragment無法接收onCreateOptionsMenu事件的問題,希望能幫助Android開發(fā)的朋友解決類似問題。
相關(guān)文章
Android系統(tǒng)進程間通信(IPC)機制Binder中的Client獲得Server遠程接口過程源代碼分析
本文主要介紹Android 通信Binder中的Client獲得Server遠程接口,這里對Android Binder 中Client中Server 源碼做了詳細分析介紹,有研究Android源碼的小伙伴可以參考下2016-08-08
android 動態(tài)控制狀態(tài)欄顯示和隱藏的方法實例
這篇文章主要介紹了2013-12-12
android不同activity之間共享數(shù)據(jù)解決方法
最近做局域網(wǎng)socket連接問題,要在多個activity之間公用一個socket連接,就在網(wǎng)上搜了下資料,感覺還是application方法好用,帖出來需要的朋友可以參考下2012-11-11
monkeyrunner之安卓開發(fā)環(huán)境搭建教程(1)
這篇文章主要介紹了monkeyrunner之安卓開發(fā)環(huán)境搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11

