我正在尝试确定哪种是实现动态水平图标列表的最佳/正确方法,这些图标的行为类似于Viber android app中的sticker list。这将是一个将填充的列表根据RestAPI的JSON文件的图标,当用户点击图标时,面板将向上滑动,根据按下的图标将显示下面的信息,可能是卡片视图的水平列表或类似的东西。首选行为的一个示例是here
经过一些搜索后,我主要找到了tablayout-viewpager解决方案的实现,但在阅读了this指南之后,特别是:
将滚动标签的数量保持在可管理的水平以最小化 导航努力。经验法则:不超过5-7个标签。
我担心布局的行为超过5-7个标签。一些消息来源支持tablayout在添加许多标签时往往功能失调,并且因为图标没有固定的数字,我担心这将对tablayout产生性能影响。
这是实现所提供的屏幕所示行为最强大的方法吗?还有比tablayout更合适的其他方式吗?我不知道如何扩展我的搜索。任何帮助将不胜感激。< / p>
答案 0 :(得分:1)
您是否尝试过将TabLayout与ViewPager一起使用?我认为更好的选择是使用TabLayout和PagerAdapter,如果要显示的项目是已知的(并且小于6或7)。您可以在PagerAdapter中填充与Tab项对应的详细信息。
另一个选项是当项目大于7或未知时使用RecyclerView而不是TabLayout。您可以使用带有水平滚动的RecyclerView来填充图标,并根据按下的图标显示详细信息,只需使用另一个RecyclerView或PagerAdapter。
从布局角度来看,您可以将BottomSheet用作包含TabLayout和ViewPager的父布局。要使TabLayout在固定高度可见,请使用BottomSheet peek height属性,其高度等于TabLayout的高度(即48dp)。对于滑动面板行为,当用户点击任何Tab项或图标时,将BottomSheet的状态更改为展开状态。