嗨,我想模拟 snapchat。在相机 fragment 没有标题栏的地方使用:
创建时
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main)
但是当我滑动到左侧 fragment 或右侧 fragment 时,我希望显示标题栏。
我该怎么做?
感谢您的宝贵时间。
澄清:
当分页器切换到另一个项目时,或者主要 Activity 切换 fragment 我想显示标题栏。
我目前正在使用 FragmentPagerAdapter 来模拟 snapchat。从相机 fragment 开始,如果向左或向右滑动/滑动,您会得到另一个 fragment 。 fragment 之间的过渡类似于旋转木马,这与使用另一个 Activity 调用 Activity 不同,后者的 Activity 之间的过渡更像是一个弹出窗口。
不幸的是,在 fragment 之间切换不会调用不同的 onCreate 钩子(Hook)方法,因此我无法根据 fragment 隐藏或显示窗口标题(我可以通过 Activity 来做到这一点)。所以我想知道如何使用 fragment 来做到这一点。
我正在使用 compat v4。
最佳答案
我的建议是你做这样的事情
请看这里:https://developer.android.com/training/system-ui/status.html http://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); }
关于android - FragmentPagerAdapter,根据 fragment 变化隐藏和显示 Window.FEATURE_NO_TITLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24846589/