【问题标题】:How to show and hide actionbar for fragments using viewpager如何使用 viewpager 显示和隐藏片段的操作栏
【发布时间】:2014-07-10 03:06:18
【问题描述】:

我在浏览器中有片段 A、B、C、D。 我想隐藏片段 A 中的操作栏并显示其余片段的操作栏。

有什么想法吗? 谢谢。

编辑: 尝试了以下操作,但操作栏仍然显示在所有片段中。

@Override 
public void onPageSelected(int position) {
if (position == 0) {
  mActionBar.hide();
} else {
  mActionBar.show();
}
}

几乎当您使用 viewpager 打开活动时,我希望片段 A 显示时没有操作栏,但是当我滑动查看其他片段时,我希望显示操作栏。

【问题讨论】:

    标签: android android-actionbar android-viewpager


    【解决方案1】:

    在 Fragments 中你想显示操作栏:

    @Override
    public void onResume() {
        super.onResume();
        actionBar.show();
    }
    

    在片段中你不想显示操作栏:

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

    对于 ViewPager:

    viewPager.setOnPageChangeListener(new OnPageChangeListener() {
    
            @Override
            public void onPageSelected(int selectedPage) {
            // Check the selectedPage here and then show and 
            // hide the actionBar accordingly. 
    
            }
    
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
    
            }
    
            @Override
            public void onPageScrollStateChanged(int arg0) {
    
            }
        });
    

    【讨论】:

    • 这在使用浏览器时不起作用。 Actionbar 将显示在所有片段中。
    • 啊!忽略了这一点。在这种情况下,您可以使用onPageSelected (int position) 方法检查所选页面并相应地隐藏和显示操作栏。
    • 刚刚尝试了以下操作,操作栏仍然显示在所有片段中。 @Override public void onPageSelected(int position) { if (position == 0) { mActionBar.hide(); } else { mActionBar.show(); } }
    • 请将代码放入问题本身。另外,请解释我应该如何处理它?
    • 感谢操作栏显示和隐藏有点不稳定,但看起来它朝着正确的方向前进。我正在将 OnPageChangeListener 实施到 FragmentPagerAdapter 但那没有做任何事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多