在某些情况下,最好使用ViewGroup
创建列表,其行为类似于ListView
或RecyclerView
。
例如,我有一种情况需要在ViewGroup
中显示项目列表,该列表是根布局的子项。 根布局是可滚动的(例如ScrollView
或NestedScrollView
),因此使用其他滚动View
来显示列表项是不合适的。
这方面的一个示例可能是在CardView
中显示列表项(当然,在这种情况下,您不会想要太多列表项,因为卡不适用于此)。在你的卡片中使用滚动布局显然是不对的,特别是如果卡片是滚动根布局的一部分。
另一个例子可能是创建一个导航抽屉(当然,在Google I / O 2015之后,还有设计支持库,所以使用NavigationView
会更简单,更容易) 。但在设计支持库之前,您必须填充ViewGroup
(可能是LinearLayout
,其中包含要在导航抽屉中显示的项目,因为抽屉的根布局必须是可滚动的。有关详细信息,请参阅在这种情况下,我问了a similar question。
问题的关键在于没有简单的方法将ViewGroup
用作列表布局,因此我们中的许多人倾向于使用复杂的解决方案来禁用ListView
或{{ 1}}。是的,可以禁用RecyclerView
上的滚动,但通常仍有Lint警告。因此,使用ListView
列表也可以被视为禁用滚动ViewGroup
滚动的替代解决方案。
那么有一种简单的方法可以将View
用作列表吗?
答案 0 :(得分:0)
受谷歌在导航抽屉ViewGroup
中填充列表项的启发,在他们的2014年Google I / O应用程序中,我创建了一个可以填充LinearLayout
中的列表项的Gist。
The Gist,标题为ViewGroupAdapter
, can be found here。
如果此解决方案变得流行,我将继续更新和改进Gist。