将片段添加为列表项

时间:2015-09-17 07:57:52

标签: android android-fragments

我有一种情况,作为列表项我想要给片段膨胀,但这似乎是一种糟糕的方法。由于片段由Activity的FragmentManager或子FragmentManager处理/管理,列表项视图由ListView& ListAdapter。

对此的任何评论和研究都将受到高度赞赏。 感谢

2 个答案:

答案 0 :(得分:1)

以下是我对您的问题的看法和问题。

您希望将ListView与片段一起使用,因为您已经有一个片段来执行该作业,并且您不希望代码变得多余。

虽然你绝对可以使用片段,但我认为它不是最好的做法。片段有自己的生命周期,你不会使用片段生命周期方法(我想)。因此在语义上它不适合这个用例。

此外,您的适配器将始终依赖于检索片段的活动。 (方向改变会有任何问题吗?)

列表项和适配器经过精心设计,可以很好地滚动很长的列表。当使用视图持有者模式时列表视图项被回收,而在滚动时,是否有任何片段生命周期方法介于两者之间?会不会对性能产生影响。 (我想是的。还没有测试过它)

您可以将视图代码放在不同的布局文件中,并在片段和列表适配器中包含此布局。

<include layout="@layout/YOUR_COMMON_VIEW_CODE"/>

并具有实用程序类,它接受上下文和此布局容器。在该实用程序类中公开所有功能。

答案 1 :(得分:0)

您不能将片段用作列表项视图,因为API不允许您 - 视图和片段甚至不相关,所以您无法像这样使用它。制作自定义视图并使用适配器getViewTypeCount和getView来使用不同的列表项行为。

片段由Activity的FragmentManager或其他Fragments子FragmentManager管理;而列表项视图由ListView&amp;管理。 ListAdapter。您可以在片段中使用ListView,但不能反过来使用。

我用Google搜索并得到了这个。