Vin*_*kla 157 android android-layout android-lifecycle android-fragments android-activity
我想实现一个屏幕,Activity
和所有其他sreens与Fragments
和managing all the fragments thru the activity
.
这是个好主意吗?我的答案是否定的,但我仍然想更清楚地了解这个想法.
这个想法的优点和缺点是什么?
注意:
请不要给我片段和活动的链接.
编辑:
这是碎片和活动的一部分:
优点:
缺点:
如果我们不考虑平板电脑,为什么要使用碎片?活动和片段之间的起始时间差是多少?
Jus*_*ris 92
这取决于您正在创建的应用程序.我使用这两种方法创建了几个应用程序,但不能说一种方式总是优于另一种方式.我创建的最新应用程序使用了单一Activity
方法和Facebook风格导航.从导航列表中选择项目时,我更新单个Fragment
容器以显示该部分.
也就是说,单一Activity
也会带来很多复杂性.假设您有一个编辑表单,对于用户需要选择或创建的某些项目,需要他们转到新屏幕.随着活动,我们只需要调用新的屏幕,startActivityForResult
但Fragments
有那么你最终存储的值没有这样的事情Activity
,并具有主编辑片段检查Activity
,看看数据是否已经被选中,并应显示给用户.
Aravind关于坚持单一Activity
类型的说法也是如此,但并非真正限制.您的活动将是FragmentActivity,只要您不需要,MapView
那么就没有实际限制.如果您确实想要显示地图,可以这样做,但您需要修改Android兼容性库以FragmentActivity
扩展MapActivity
或使用公开的android-support-v4-googlemaps.
最终,我所知道的大多数开发Activity
人员已经回到了多个活动以简化他们的代码.UI智能,在平板电脑上,你有时会被困在一个Activity
只是为了实现你的设计师提出的任何疯狂的互动:)
- 编辑 -
Google终于发布MapFragment
了兼容性库,因此您不再需要使用android-support-v4-googlemaps hack.在此处阅读有关此更新的信息:Google Maps Android API v2
- 编辑2 -
我刚读了这篇关于现代(2017)碎片状态的精彩帖子,并记得这个老答案.以为我会分享:片段:Android所有问题的解决方案
Tam*_*mas 83
我即将完成一个项目(开发5个月),有1个活动,17个片段,全屏.这是我的第二个基于片段的项目(之前是4个月).
优点
finish()
所有不可见的活动,并使用相同的控制逻辑进行导航,就像我对碎片所做的那样.不管是因为这个原因,还是可以用片段来做.缺点
bep*_*aya 16
首先,无论您做什么,请确保使用模型,视图,演示者进行模块化设计,而不是高度依赖于Activity或Fragment.
活动和碎片真正提供了什么?
因此,只能使用它们.他们有足够的责任,不要过度复杂化.我认为即使在Activity或Fragment中对TextView进行实例化也是不好的做法.我们有理由方法,如一个公共景观findViewById(INT ID)是PUBLIC.
现在问题变得更简单了:我是否需要多个独立的生命周期事件和后台堆栈?如果您认为可能,请使用碎片.如果您从未想过,请不要使用碎片.
最后,你可以制作自己的背包和生命周期.但是,为什么重新创造轮子?
编辑:为什么要投票呢?单人课程的人!每个活动或片段都应该能够实例化实例化视图的演示者.演示者和视图是可以互换的模块.为什么活动或片段应由演示者负责?
Sah*_* Mj 12
您可以从单个活动控制您的片段,因为所有片段彼此独立.该片段有一个生命周期(onPause
,onCreate
,onStart
自己的...).通过生命周期,片段可以独立响应事件,保存状态onSaveInstanceState
并被带回(例如,在来电后或用户单击后退按钮时恢复).
从来没有这样,这是一个非常好的主意,就像你需要创建一个应用程序,你想要显示几个视图.通过这个想法,您将能够在单个视图中查看多个片段.
优点:
缺点:
我相信这是一个好主意,因为如果您计划为手机和平板电脑发布应用程序,那么根据当前屏幕尺寸和方向使用不同的 xml 布局可以使应用程序更可用,并减少发布多个版本的应用程序的需要。如果您的应用程序永远不会同时被平板电脑和手机使用,那么可能不值得这么麻烦。
归档时间: |
|
查看次数: |
58111 次 |
最近记录: |