在安卓中使用ViewPager滑动的嵌套标签页?

13
我已经成功地使用ViewPager实现了嵌套选项卡,但是我的问题在于滑动部分。当我进行滑动操作时,主Activity的选项卡会被切换,但是我想让片段(fragment)来滑动。我该如何实现这一点?
我尝试过使用TabHost和FragmentTabHost来实现主选项卡,但它们都没有滑动功能,而且这会同时禁用主选项卡和片段的整个滑动。 Description
5个回答

5

可以尝试使用底部导航栏视图代替自定义库。这个功能已经添加到Design Support Library的25版本中。以下是一个相关的文章

在你的活动(activity)中使用android.support.design.widget.BottomNavigationView,在片段(fragment)中使用android.support.design.widget.TabLayoutViewPager,这样就可以按照你想要的方式进行操作。这也将提供良好的用户体验(类似于Google Plus应用程序实现的效果)。


您也可以使用“文件”>“新建”>“活动”>“底部导航活动”,简单地添加一个具有BottomNavigationView的活动。 - CoolMind

3

你好,Shaheen Zahedi。也许可以实现以下需求:为底部选项卡设置更改监听器,例如:

btnTab.setTabChangeListener(null);

viewpager 没有 setTabChangeListener 方法,这个类只包含 addOnPageChangeListener 方法,我需要实现它来更改图标。 - Shaheen Zahedi
如果您不想滑动,则在 addOnPageChangeListener 中添加 null。 - Chirag.T
setTabChangeListener是用于选项卡而不是ViewPager的,如果您不想根据选项卡进行更改,则在tabchangelistener上设置为null。 - Chirag.T
这将禁用整个滑动功能,正如我所说,我希望片段进行滑动。 - Shaheen Zahedi
如果你不想刷卡,那就是的。 - Chirag.T

1
你可以在特定的ViewPager上禁用视图页面刷卡。但我建议不要在同一屏幕上制作2个ViewPagers。你的底部TabLayout和相应的ViewPager可以使用BottomBar库替换。

谢谢提醒,但我已经实现了 Bottombar 库,但仍然无法在片段中获得滑动操作,我该怎么办? - Shaheen Zahedi

1

我觉得遵循Google Material 指南是明智的。不确定你是否已经查看过了...

无论如何,这里是Google在标签之间进行横向导航时认为最佳实践。希望能帮到你!


1

我制作了一个带有嵌套标签和片段的示例项目。也许它可以帮助您找到所需内容。

以下链接可供下载: NestedTabWithFragment


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接