我有一个 Android 应用程序,其中有多个“类别”,每个类别都有一些与其关联的项目。例如,就像一个在线电子商店,您可以将计算机、打印机、相机等类别作为类别,然后每个类别中都会包含一些商品。
这些类别应在屏幕顶部显示为“选项卡”,您可以在其中选择一个选项卡来显示与其关联的项目。这工作正常,但我想要的是能够通过在屏幕上向左或向右滑动来更改类别。
正如您在图像上看到的,第一个选项卡已被选中。现在我需要的是,当用户向右滑动时,将选择选项卡 2,并且列表视图中的所有项目当然都会更改为类别 2 (tab2) 的项目。所有项目(独立于类别)都具有相同的设计,这就是为什么我只使用一个列表视图。我遇到的一些问题是:
我从一开始就不知道会有多少个选项卡,因此必须在运行时创建它们。
我不能只在每个项目上创建一个滑动侦听器,因为如果项目没有填满屏幕,用户将无法滑动(如下例所示,其中只有 4 个项目和下面的空白区域)这样就没有听众)这似乎也可能是性能的重担?
在包含列表类型的整个视图上添加滑动监听器是可行的,只不过该视图会拦截包括单击在内的所有手势,这意味着用户将无法单击也是必需的单个项目。
我考虑过使用 ViewPager,但我以前从未使用过,而且我不知道它是否太过分了,因为我基本上只需要“一个”视图,但根据选项卡选择具有不同的数据。
希望大家能帮忙。
您使用 ViewPager 的方向是正确的,但要获得顶部的正确功能,您应该使用 Jake Wharton 的库。
https://github.com/JakeWharton/ViewPagerIndicator
您可以设置顶部元素,寻呼机将在调整后的回调中与适当的片段相对应。