android - 当 viewpager 更改时关闭 Context Actionbar

标签 android contextual-action-bar

现在我有一个使用 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/

相关文章:

android - startActionMode 错误,appcompat

android - OnItemLongClickListener 在自定义 ListView 中不起作用

javascript - React Native 渲染问题

android - 上下文操作栏样式

android - 在 Android 中长按时从操作模式中删除后退/主页按钮

android - 如何在进入上下文操作模式时更改状态栏颜色

java - 无法解析构造函数ArrayAdapter(Listview,fragment)

java - 使用 AccessibilityService 模拟操纵杆移动

android - 垂直轮播渲染脚本

按钮不适用的Android主题样式