Android - 在片段中显示/隐藏动作菜单栏

时间:2017-03-27 15:28:43

标签: android android-fragments

这是我的场景:我有三个片段,我只想在其中一个片段中显示一个操作栏。在创建片段的活动中,我目前拥有正确创建菜单栏的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_view_report, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    if (id == R.id.action_view_report) {
        Intent intent = new Intent(getApplicationContext(), ViewReportActivity.class);
        startActivity(intent);
    }

    return super.onOptionsItemSelected(item);
}

然后在我试图隐藏菜单栏的其中一个片段中,我有这个代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(false);
}

@Override
public void onPrepareOptionsMenu(Menu menu) {
    menu.findItem(R.id.action_view_report).setVisible(false);
    super.onPrepareOptionsMenu(menu);
}

有没有人知道我做错了什么或合适的解决方案?

提前致谢

0 个答案:

没有答案