簡體   English   中英

Android-在片段之間切換; 菜單項問題

[英]Android - Switching between fragments; Menu Item problems

我的應用程序使用片段,操作欄和導航抽屜。 當我在片段之間切換時,菜單項將損壞並且不再起作用。 我嘗試了各種方法來解決問題,但無濟於事。

在我的片段onCreate我有setHasOptionsMenu(true);

這是我的onCreateOptionsMenu

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    Log.d("Log", "Inflating Menu");
    menu.clear();
    inflater.inflate(R.menu.blank, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

這是我簡單的onOptionsItemSelected

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.mySearch:
            Log.d("Log", "Implementing Search Method");
            search();
            return true;

        case R.id.action_settings:
            //do something
            return true;
    }
    return super.onOptionsItemSelected(item);
}

在每個片段的菜單中,我使用menu.Clear(); 以防止在片段之間切換時堆積菜單項。 第一次選擇片段時,菜單運行選定的功能就很好,但是在切換到另一個片段並再次返回菜單項之后,單擊菜單項不會執行任何操作。

問題是您清除菜單並再次執行充氣菜單。

刪除線

     inflater.inflate(R.menu.blank, menu);

相反,您只需要清除Fragment的onCreateOptionsMenu()中的菜單,這樣就不會為該特定片段顯示菜單,而為其他片段顯示菜單。

另外,您只需要在所有片段共有的Activity onCreateOptionsMenu膨脹菜單

也可以在這里查看我的答案。 動作按鈕顯示在所有片段中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM