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-03Android中關(guān)于定時任務(wù)實現(xiàn)關(guān)閉訂單問題
在電商、支付等領(lǐng)域,往往會有這樣的場景,用戶下單后放棄支付了,那這筆訂單會在指定的時間段后進行關(guān)閉操作,細心的你一定發(fā)現(xiàn)了像某寶、某東都有這樣的邏輯,而且時間很準(zhǔn)確,誤差在1s內(nèi);那他們是怎么實現(xiàn)的呢?今天通過本文學(xué)習(xí)定時任務(wù)實現(xiàn)關(guān)閉訂單問題2022-05-05