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 通過API獲取數(shù)據(jù)庫中的圖片文件方式
這篇文章主要介紹了Android 通過API獲取數(shù)據(jù)庫中的圖片文件方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android中關(guān)于定時任務(wù)實現(xiàn)關(guān)閉訂單問題
在電商、支付等領(lǐng)域,往往會有這樣的場景,用戶下單后放棄支付了,那這筆訂單會在指定的時間段后進(jìn)行關(guān)閉操作,細(xì)心的你一定發(fā)現(xiàn)了像某寶、某東都有這樣的邏輯,而且時間很準(zhǔn)確,誤差在1s內(nèi);那他們是怎么實現(xiàn)的呢?今天通過本文學(xué)習(xí)定時任務(wù)實現(xiàn)關(guān)閉訂單問題2022-05-05

