Android 解決嵌套Fragment無法接收onCreateOptionsMenu事件的問題
前言
嵌套的二級(jí)Fragment無法接收onCreateOptionsMenu事件的問題,設(shè)置了setHasOptionsMenu也不管用。
正文
補(bǔ)充說明:
如果通過緩存Fragment手動(dòng)調(diào)用二級(jí)Fragment,可能會(huì)出現(xiàn)莫名其妙的問題,比如更多Menu不顯示。
解決辦法:
在一級(jí)Fragment中添加Menu,可以在一級(jí)onOptionsItemSelected中手動(dòng)調(diào)用二級(jí)的此方法來處理相關(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);
}
代碼說明:
示例代碼是一級(jí)Fragment,getFragmentByPosition返回的是二級(jí)Fragment。
以上就是Android 解決 Fragment無法接收onCreateOptionsMenu事件的問題,希望能幫助Android開發(fā)的朋友解決類似問題。
相關(guān)文章
Android 通過API獲取數(shù)據(jù)庫中的圖片文件方式
這篇文章主要介紹了Android 通過API獲取數(shù)據(jù)庫中的圖片文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Kotlin超簡單實(shí)現(xiàn)StepView的方法
這篇文章主要介紹了Kotlin超簡單實(shí)現(xiàn)StepView的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
android自定義ViewPager水平滑動(dòng)彈性效果
這篇文章主要為大家詳細(xì)介紹了android自定義ViewPager水平滑動(dòng)彈性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Android中關(guān)于定時(shí)任務(wù)實(shí)現(xiàn)關(guān)閉訂單問題
在電商、支付等領(lǐng)域,往往會(huì)有這樣的場景,用戶下單后放棄支付了,那這筆訂單會(huì)在指定的時(shí)間段后進(jìn)行關(guān)閉操作,細(xì)心的你一定發(fā)現(xiàn)了像某寶、某東都有這樣的邏輯,而且時(shí)間很準(zhǔn)確,誤差在1s內(nèi);那他們是怎么實(shí)現(xiàn)的呢?今天通過本文學(xué)習(xí)定時(shí)任務(wù)實(shí)現(xiàn)關(guān)閉訂單問題2022-05-05

