Android 通知viewpager中的片段
我正在我的应用程序中使用Android 通知viewpager中的片段,android,android-viewpager,Android,Android Viewpager,我正在我的应用程序中使用ViewPager。在每个片段中都有一个工具栏。只需轻触图像,工具栏就会显示在屏幕上方。但是我必须通知所有剩余的片段做同样的事情。因此,当用户滚动到下一个片段时,他看不到工具栏 我尝试添加setUserVisibleHint(),但它不起作用,因为只有在片段完全可见时才调用它,从而向用户显示退出的工具栏 然后我在onResume中尝试了它,并设置了pager.offscreenpagelimit=1,它对下一个片段很有效,但对下一个片段无效 谢谢 首先使用以下命令从片段通
ViewPager
。在每个片段中都有一个工具栏。只需轻触图像,工具栏就会显示在屏幕上方。但是我必须通知所有剩余的片段做同样的事情。因此,当用户滚动到下一个片段时,他看不到工具栏
我尝试添加setUserVisibleHint()
,但它不起作用,因为只有在片段完全可见时才调用它,从而向用户显示退出的工具栏
然后我在onResume
中尝试了它,并设置了pager.offscreenpagelimit=1
,它对下一个片段很有效,但对下一个片段无效
谢谢 首先使用以下命令从片段通知您的活动: 在动画结尾的片段中:
((YourActivity)getActivity()).hideToolbar();
在活动中:
public void hideToolbar() {
// Redraw view pager without toolbar (notify your adapter create pager without toolbar)
}
那么,为什么不把你的工具栏从你的片段中拿出来,在“活动”中创建一个,并在“页面更改”中更改它的状态(当然它不会滑动,但可能会滑动)你有两个问题要面对
Bus bus = new Bus();
@Override
protected void onResume() {
super.onResume();
bus.register(this);
}
@Override
protected void onPause() {
super.onPause();
bus.unregister(this);
}
@Subscribe
public void onToolbarEvent(ToolbarEvent event) {
//do your toolbar logic
}
然后,在图像上的onClick事件中,刚刚放置(当然,之前创建了总线对象)
ToolbarEvent可以是空类。如果您阅读了Otto事件,您将了解它是如何工作的
另一个问题是,当viewpager实例化新片段时,如何知道工具栏应该隐藏/显示?只需在共享预引用中添加一个布尔标志,这样每次创建片段时,它都可以检查是否可以显示工具栏,例如在onViewCreated()方法中。可以找到如何使用共享预引用的示例
希望我能帮上一点忙。当你传递到下一个片段时,你想隐藏你的工具栏/操作栏吗?是的..工具栏应该为ViewPagerId中的下一个片段隐藏。你试试看:?顺便问一句,你是在使用Android 5的工具栏吗?我在使用支持v7,它有工具栏实现。你试过了吗:?我必须为每个片段添加一个工具栏在viewpager中创建一个片段,这样当我滚动每个页面时,我会看到每个页面都有一个不同的工具栏。
bus.post(new ToolbarEvent());