禁用操作栏向上按钮

时间:2015-04-21 19:21:12

标签: android android-actionbar

我正在尝试在某些用户操作上禁用支持操作栏中的“向上”按钮。根据{{​​3}},setHomeButtonEnabled应该做我想要的。但是,该按钮仍然可以点击。 (我可以毫无问题地禁用操作栏中的其他图标。)

我试图从片段中禁用它。 我禁用的代码是:

@Override
public void onPrepareOptionsMenu (Menu menu) {

    if (isUpdating) {


        getBaseActivity().getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.ic_backgrey));
        getBaseActivity().getSupportActionBar().setHomeButtonEnabled(false);

        for (int i = 0; i < menu.size(); i++) {
            menu.getItem(i).setEnabled(false);
            menu.getItem(i).getIcon().setAlpha(64);
        }
    } else {

        getBaseActivity().getSupportActionBar().setHomeButtonEnabled(true);
        getBaseActivity().getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.ic_back));
        for (int i = 0; i < menu.size(); i++) {
            menu.getItem(i).setEnabled(true);
            menu.getItem(i).getIcon().setAlpha(255);
        }
    }
}

我在活动onCreate中的代码是:

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.ic_back));

和我的Fragment onCreate包含     setHasOptionsMenu(真)

2 个答案:

答案 0 :(得分:0)

在你的片段中添加

getBaseActivity().getSupportActionBar().setDisplayHomeAsUpEnabled(false);

并在您的活动中添加

getSupportActionBar().setDisplayHomeAsUpEnabled(false);

答案 1 :(得分:0)

在oncreate()中,setDisplayHomeAsUpEnabled也应该设置为false。

  getSupportActionBar().setDisplayHomeAsUpEnabled(false);

http://developer.android.com/reference/android/app/ActionBar.html#setDisplayHomeAsUpEnabled(boolean)