如何在单个片段中隐藏操作栏?

时间:2014-03-14 20:33:37

标签: android android-activity android-actionbar android-appcompat

我在我的应用中使用AppCompat作为我的主题。另外,我使用viewpager来管理一些片段。 现在我想在我的一个片段中隐藏动作栏。我怎样才能做到这一点。我试图像这样

在片段中手动隐藏动作栏
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ActionBarActivity activity = (ActionBarActivity) this.getActivity();
    ActionBar aBar = activity.getSupportActionBar();
    aBar.hide();
}

但这隐藏了所有片段的操作栏。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

当你加载其他片段调用时(例如在onResume中):

aBar.show();

编辑:

在你想要显示ActionBar的每个片段中放置以下方法:

@Override
public void onResume() {
    super.onResume();
    aBar.show();
}
片段的OnResume方法中的

,您不希望操作栏显示这样做:

@Override
public void onResume() {
    super.onResume();
    aBar.hide();
}

您正在使用视图寻呼机我假设您使用的代码类似于:

http://developer.android.com/reference/android/support/v4/view/ViewPager.html

在这种方法的情况下:

@Override
        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            Object tag = tab.getTag();
            for (int i=0; i<mTabs.size(); i++) {
                if (mTabs.get(i) == tag) {
                    mViewPager.setCurrentItem(i);
                    // add check here to determine if the selected item is the fragment you want     to hide the action bar in... 
                    // if so call aBar.hide();
                      // for example:

                    if(i == MY_NO_BAR_FRAGMENT) {
                          // when you set up the view fragment, you would set MY_NO_BAR_FRAGMENT to the index of that fragment in the view pagers list of pages.
                          aBar.hide();
                    }
                }
            }
        }