Android - ActionBar滑动标签

时间:2014-11-09 10:07:33

标签: android android-actionbar android-camera swipe

我有一个需要3个标签的应用程序,滑动标签。

前两个是碎片,在第三个我需要打开相机。

片段的标题为" Stream" "简介" "照片" 当应用程序启动时,用户应该看到Stream片段,当他滑动视图时应该更改。

当用户滑动或按下"照片"以启动相机时选项卡,照片类是扩展Activity类,而在onCreate中我设置了启动摄像头的意图。

问题是当我从" Stream"到"简介"我看到它打开了相机。当我调试它时,我发现当它发生时,我的意思是,当我从Stream切换到Profile时,监听器返回摄像机选项卡的索引。

即使我更改照片类以扩展片段,也会发生这种情况。

那么,当用户按下或滑动到" Photo"时,我该如何启动相机?标签

更新

好了,现在它有些奇怪..我创建了一个新项目,看看我的代码是否有问题......我只是使用了这个代码tutorial

更新

正如本教程的作者所做的那样,我创建了主要活动,它设置了所有选项卡和适配器并实现了TabListener。 现在每个选项卡都是一个从Fragment扩展并具有自己的布局的类。 主要活动是否听到滑动和方向,或者是否按下了标签? 我的标签按顺序| STREAM | PROFILE | PHOTO | 当应用程序启动时,我看到流选项卡,当我移动到配置文件选项卡(按下选项卡或只是滑动)它显示正确的布局并标记正确的选项卡,但它进入照片选项卡的onCreateView。现在,如果我在“照片”选项卡中,并按下配置文件选项卡,它会显示配置文件布局,但会进入流选项卡的onCreateView。它永远不会进入配置文件选项卡的onCreateView。为什么会这样? (我调试它以查看它是否在onCreateView右侧进入,我所描述的是结果)

代码与教程中的代码相同..我刚刚更改了标题..

1 个答案:

答案 0 :(得分:2)

mTab​​Pager。setOffscreenPageLimit 设置为 0 将无效,因为存在限制1.您可以使用" onPageChangeListener"相反,并在相机选项卡中打开相机意图。

mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageSelected(int position) {
        Toast.makeText(this, "Changed to page " + position, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }
});