FragmentPagerAdapter,根据片段更改隐藏和显示Window.FEATURE_NO_TITLE



嗨,我想模仿snapchat。在相机片段没有标题栏的情况下,使用:

on创建

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main)

但当我滑动到左侧片段或右侧片段时,我希望标题栏出现。

我该怎么做?

谢谢你抽出时间。

澄清:

当寻呼机切换到另一个项目或主活动切换片段时,我想显示标题栏。

我目前正在使用FragmentPagerAdapter来模拟snapchat。你从相机碎片开始,如果你向左或向右滑动/投掷,你会得到另一个碎片。片段之间的转换类似于旋转木马,不同于用另一个活动调用活动,其中活动之间的转换更像是一个弹出窗口。

不幸的是,在片段之间切换不会调用不同的onCreatehookmethod,因此我无法根据片段隐藏或显示窗口标题(我可以通过活动来实现(。所以我想知道我该如何处理碎片。

我正在使用compat v4。

我的建议是你做一些类似的事情

请参见此处:https://developer.android.com/training/system-ui/status.htmlhttp://blog.grio.com/2014/02/androids-hiding-of-the-system-bar-fixed.html

  • 在Android 4.0及更低版本上隐藏状态栏
  • 隐藏Android 4.1及更高版本上的状态栏

    ViewPager mViewPager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                if(position == 0 ){
                    showStatusBar() ;
                }else {
                    hideStatusBar();
                }
            }
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }
            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    

    }

    private void hideStatusBar() {
        // Hide status bar
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    private void showStatusBar() {
     // Show status bar
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    

每次在FragmentPagerAdapter 中向左或向右滑动时,都可以使用actionbar的隐藏和显示方法

样本:

        getActionBar().hide(); //will hide the actionbar
        getActionBar().show(); //will show the actionbar

相关内容

最新更新