我有一个扩展的FragmentPagerAdapter,为ViewPager提供了3个片段,使我可以在3个页面之间滑动或使用我添加到操作栏的选项卡手动选择页面。
我想临时禁止用户使用任何导航类型访问最后一页(禁用任何特定页面的更通用的解决方案也很有趣,但不是必需的)。然后,我将通过其中一个片段的回调重新启用他们的访问权限。
我已经阅读了一些类似问题的答案,这些问题不允许通过覆盖onTouchEvent和onInterceptTouchEvent来滑动,然后在其中使用一些自定义手势检测,甚至使用beginFakeDrag()的半个解决方案。
我的当前解决方案只是在适配器中设置较小的项目数,确保使用notifyDataSetChanged(),并在必要时将其改回。是否有任何优雅的替代方法,也许不需要更改数据集?
我还看到ActionBar.Tab没有setEnable()方法,大多数建议只删除选项卡。我能否让选项卡保持可见但不可选?我的方法是定义哪个选项卡被禁用,并在用户选择禁用的选项卡时重新选择先前选择的选项卡。
编辑: 我的目标是禁用选项卡和滑动到最后一页。
ViewPager
并不适合这些需求。是的,你可以通过更改数据集来动态使用它,但是阻止选项卡界面比更改ViewPager
的行为更容易。 - einschnaehkeee