android – 在ViewPager中使用View或Fragment

我有一个关于是否在ViewPager中使用View或Fragment的问题.

背景:
我有一个包含ListView的Activity A.每个ListView项打开活动B.活动B显示不同的内容,具体取决于在活动A中点击的ListView项.
活动B的内容显示在ListView中.

题:
现在,我不需要在活动A和B之间来回切换内容,而是要求实现水平视图滑动以在活动B内切换所有内容.
我找到的一个解决方案(尝试它并且它可以工作)是创建Activity B的ListView的许多实例,并将它与ViewPager PagerAdapter一起使用.
在doc上找到的另一个可能的解决方案(尚未尝试过)是将ListView引入Fragment,创建片段的许多实例并将其与ViewPager FragmentPagerAdapter或FragmentStatePagerAdapter一起使用.

我的问题是,使用每种方法有什么好处?我是否应该解决将ListView带入Fragment或只是简单地将ViewView与ViewPager一起使用的麻烦?

谢谢

解决方法

我想,当你想将一些UI业务逻辑绑定到特定的View(或一组)时,Fragment是一种有用的方法.如您所知,单个Fragment有自己的生命周期回调等等,就像Activity一样.

通过单个PagerAdapter使单个Activity托管许多ListView,而不是使用Fragment方法可能更干净,因为Fragment只需要处理驱动单个ListView的逻辑.

这与我刚刚面临的情况非常相似.我在ViewPager中显示各种垂直滚动形式(由许多输入字段组成).在我的情况下,我已经采用了Fragment方法,因为在我的情况下,ViewPager可能实际上需要在某些页面显示完全不同的视图.例如,在前几页中,可能会显示用户输入表单.但在最后一页上,将显示一个图表.需要一组完整的逻辑来驱动该图.从单个Activity中驱动那些输入表单和一个图表会有点混乱,我可能需要在几个委托类或其他东西中包含业务逻辑.所以对我来说,片段最终是明显的选择.我有我的InputFormFragment和GraphFragment,它们每个都只包含它们提供的视图的适用逻辑.

另一件需要考虑的事情是,在不久的将来,您也可能希望在ViewPager中显示不同类型的View.或者,您可能希望完全拥有另一个UI布局,也许是一个不使用ViewPager但是并排显示所有UI布局(例如,在横向模式下在大型平板电脑上使用的布局).使用Fragments,事情变得更加模块化,您可以将代码考虑在内,以便更快地完成此操作.另一方面,如果您通过使用包含简单的PagerAdapter和ListViews的所有逻辑的单个Activity来实现目标,您可能会发现将来需要更多工作来支持新类型的视图或特殊的平板电脑布局.

我要说的一件事是我自己通过FragmentPagerAdapter和FragmentStatePagerAdapter在ViewPager中实现了Fragments,如果你有任何特殊要求,事情会有点尴尬;管理碎片有时候会很棘手.例如,对于我的UI,我需要能够以编程方式添加删除包含片段的ViewPager.我还需要确保使用的适配器在显示后不会破坏碎片,因为我需要在某个时刻同时从所有碎片中收集数据.此外,我必须扩展和修改FragmentPagerAdatper,以确保Fragments正确地通过他们的onDestroy(),并在删除ViewPager时从FragmentManager中删除.

片段支持以非常模块化的方式构建用于各种屏幕大小和方向的UI,并且它们在如何允许您为各个UI元素封装业务逻辑和生命周期方面表现出色.但是,如果您的场景真的像ViewPager中的几个ListView一样简单,并且您知道您将永远不需要模块化,那么Fragments的开销可能会过度.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android岛屿数量算...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Andro...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android数据压缩的方法是什么”文章能帮助大家解决疑惑...
这篇“Android怎么使用Intent传大数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅...
本文小编为大家详细介绍“Android事件冲突怎么解决悬浮窗拖拽问题”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android事件冲突怎么解决悬浮窗拖拽问题”文...
这篇文章主要介绍了Android拼接如何实现动态对象的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android拼接如何实现动态对象文...
今天小编给大家分享一下Android全面屏适配怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下...
本篇内容介绍了“Android怎么开发Input系统触摸事件分发”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何...
今天小编给大家分享一下AndroidRoom怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下...
本文小编为大家详细介绍“AndroidRoom使用方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“AndroidRoom使用方法有哪些”文章能帮助大家...
这篇文章主要介绍“Android中的OpenGL怎么配置使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android中的Open...
这篇文章主要介绍了Android如何自定义自动识别涂鸦工具类的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android如何自定义自动...
今天小编给大家分享一下Android如何自定义有限制区域的图例角度自识别涂鸦工具类的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以...
今天小编给大家分享一下ReactNative错误采集原理在Android中如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章...
这篇文章主要讲解了“Android崩溃日志收集和保存代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“A...
这篇“Android面向单Activity开发实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大...
本篇内容介绍了“Android应用启动白屏处理的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何...