使用ViewGroup作为列表?

时间:2015-08-25 16:52:45

标签: android list android-listview android-recyclerview android-viewgroup

在某些情况下,最好使用ViewGroup创建列表,其行为类似于ListViewRecyclerView

例如,我有一种情况需要在ViewGroup中显示项目列表,该列表是根布局的子项。 根布局是可滚动的(例如ScrollViewNestedScrollView),因此使用其他滚动View来显示列表项是不合适的。

这方面的一个示例可能是在CardView中显示列表项(当然,在这种情况下,您不会想要太多列表项,因为卡不适用于此)。在你的卡片中使用滚动布局显然是不对的,特别是如果卡片是滚动根布局的一部分。

另一个例子可能是创建一个导航抽屉(当然,在Google I / O 2015之后,还有设计支持库,所以使用NavigationView会更简单,更容易) 。但在设计支持库之前,您必须填充ViewGroup(可能是LinearLayout,其中包含要在导航抽屉中显示的项目,因为抽屉的根布局必须是可滚动的。有关详细信息,请参阅在这种情况下,我问了a similar question

问题的关键在于没有简单的方法将ViewGroup用作列表布局,因此我们中的许多人倾向于使用复杂的解决方案来禁用ListView或{{ 1}}。是的,可以禁用RecyclerView上的滚动,但通常仍有Lint警告。因此,使用ListView列表也可以被视为禁用滚动ViewGroup 滚动的替代解决方案。

那么有一种简单的方法可以将View用作列表吗?

1 个答案:

答案 0 :(得分:0)

受谷歌在导航抽屉ViewGroup中填充列表项的启发,在他们的2014年Google I / O应用程序中,我创建了一个可以填充LinearLayout中的列表项的Gist。

The Gist,标题为ViewGroupAdapter, can be found here

如果此解决方案变得流行,我将继续更新和改进Gist。