Android ListView中的Fragment

3
我的应用是一个社交网络,用户可以分享链接并使用标签让正确的人接收到它们。基本上,主要活动就是帖子列表视图。我在服务器端使用开放协议解析器来获取Web对象元数据。
现在,我需要根据元数据(视频、应用程序、网页等)在每篇文章项中显示正确的布局。当然,布局必须对用户点击事件做出反应并调用意图。
所以,我的第一个想法是为每个项目添加一个FrameLayout,在其中加载特定的Fragment,负责生成根据资源类型正确的布局。
但我真的不确定在ListView项中加载片段是否是一种好的实践,因为视图重用系统完全混乱。
我只想知道你们实现这个功能的最佳方法是什么。
谢谢。
1个回答

2

这并不是fragment的设计初衷。你不需要使用fragment来创建不同类型的ListView行 - 只需在你的ListAdapter中覆盖getItemViewType()getViewTypeCount(),然后根据元数据按需创建正确类型的行。


感谢CommonsWare,即使我更希望有一种好的方法来完成它,而不是让适配器承担生成视图的全部责任。比如说视图工厂之类的东西。 - mth.vidal
@mth.vidal:并没有什么阻止你将行构建的工作委托给“视图工厂”,尽管我倾向于认为适配器本身就是“视图工厂”。在我看来,片段并不真正是一个“视图工厂”,但这可能只是对短语用法的不同看法。 - CommonsWare
应该可以将片段放置在任何地方。仅仅因为你想把它放到其他地方,就必须在视图和片段之间进行重构是荒谬的。 - Glenn Maynard
2
@GlennMaynard:ListViewFragment存在的时间要早得多。您可以编写一个支持将Fragment作为列表行的FragmentListView - CommonsWare
2
@GlennMaynard:所有平台和框架都有缺陷。如果你不喜欢Android的特定缺陷,那就不要为Android编写代码,就像如果有人不喜欢Django的缺陷,他们可以选择不使用Django一样。 - CommonsWare
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接