现在我有一个使用 viewpager 来显示几个 fragment 的 Activity 。这些 fragment 中的每一个都在 fragment 中实现了一个上下文操作栏。如果用户在 fragment 之间滚动或制表符,我会尝试将其设置为关闭先前选择的 fragment 的 ActionBar。
我想我需要在我的 OnPageChangeListener()
fragment 中对 CAB .finish()
进行某种调用,但是我不完全确定如何或在哪里做。
最佳答案
在每个 fragment 中创建一个公共(public)函数,可以调用它来完成 ActionMode。可能看起来像这样
public void finishActionMode(){
[YOUR_ACTIONMODE_VARIABLE].finish();
}
然后在您保留 ViewPager 的 Activity 中,您应该以某种方式保留或获取对 ViewPager 中应该关闭其 ActionMode 的 fragment 的引用,然后在您的 onPageSelected 中,您可以调用`[YOUR_FRAGMENT_REFERENCE].finishActionMode();
像这样:
mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
[YOUR_FRAGMENT_REFERENCE].finishActionMode();
}
...
});
要保留对 ViewPagers fragment 的引用,请看这里:Retrieve a Fragment from a ViewPager
关于android - 当 viewpager 更改时关闭 Context Actionbar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416441/