ListFragment 相对于 ListView 或普通 Fragment 的优势
Posted
技术标签:
【中文标题】ListFragment 相对于 ListView 或普通 Fragment 的优势【英文标题】:Advantage of ListFragment over a ListView or normal Fragment 【发布时间】:2013-07-22 06:52:11 【问题描述】:我有一个活动,其中包含在左侧运行的项目菜单,这些项目是 textViews。当用户选择其中一个 textViews 时,它将在活动区域的其余部分放置一个 listView,占据屏幕的其他 2\3。当用户在页面的左侧菜单上触摸不同的 textView 时,它将打开不同的相应列表视图。
为此,我正在考虑在屏幕上放置一个大列表视图。但是另一种方法是在活动中使用常规 listView 代替,我可以在其中放置一个列表片段并在片段之间切换。
第三种选择是在其中放置一个片段,并在该片段中放置一个 listView。我以前从未使用过 ListFragment。
考虑到没有方向变化,哪个是最好的计划?活动将被锁定在垂直/纵向方向。这将在平板电脑上运行,而不是在手机等较小的设备上使用。
我不知道我是否需要使用加载器,因为列表不会很长而且列表的内容只是文本。
与其他选择相比,使用 listFragment 有什么优势吗?
此活动的三个选择:
带有ListView
的活动
带有ListFragment
的活动
带有片段的活动,上面有ListView inside of the
Fragment`
【问题讨论】:
【参考方案1】:ListFragment
基本上是一个稍微专业化的Fragment
,它通过提供一些方便的方法(例如getListView()
,因此您无需搜索,从而可以更轻松地处理Fragment
布局中的ListView
对于您自己的小部件,一种获取ListView
等适配器的方法。如果您需要Fragment
和ListView
,请使用ListFragment
。所以最后是在ListView
和ListFragment
之间做出决定。
在这两个选项之间,考虑到您的情况,我会简单地使用ListView
,因为它很简单。 Loader
的需要不是问题,因为您可以将Activity
的LoaderManager
用于ListView
。
但是,您没有提到应该如何处理 BACK 按钮。如果您想为用户提供通过他的选择导航返回的可能性,请使用Listfragment
从系统中免费获取。
【讨论】:
您是否有带有选项 3 的遗留代码,方便方法是否值得重构? @Martin 在包含列表的片段和 ListFragment 之间切换首先应该不会太难。最终由你决定,如果我已经有一个正常工作的片段,我不会打扰。以上是关于ListFragment 相对于 ListView 或普通 Fragment 的优势的主要内容,如果未能解决你的问题,请参考以下文章
在 ListFragment 中使用自定义 ListView
处理空列表 - 最好使用 ListFragment 或 Fragment+ListView?
ListFragment:运行时错误“您的内容必须有一个 id 属性为 'android.R.list' 的 ListView