android 开发用 “单 activity 多 fragment” 还是 “多 activity 多 fragment” 还是 “主用 activity”?

2017-12-21 11:45:01 +08:00
 GuLuDaDuiZhang
我目前用“单 activity 多 fragment ”模式遇到些坑,网上找答案时偶然看到知乎上关于这个问题的讨论,于是开始纠结了。

https://www.zhihu.com/question/39662488

因为本人是网上找资料自学,目前实习,但实战经验不足,所以想知道实际开发中大家是怎样选择的,最好能说一说思路。拜谢,感激不尽。
11479 次点击
所在节点    Android
32 条回复
jerry12547
2017-12-21 15:54:02 +08:00
AckywOw
2017-12-21 16:42:08 +08:00
Fragment 翻译是碎片,这意思还不明白?
Gerhman
2017-12-21 16:44:11 +08:00
简单的不需要移动来移动去的单 activity 就可以了,
activity+fragment 灵活点,不过坑也多点。
看需求用
believeitcould
2017-12-21 16:54:19 +08:00
我 单个 Activity 多个 Fragment
GoodRainChen
2017-12-21 17:07:28 +08:00
很赞同啊,碎片这个命名就可以解释清除谷歌的意图了,何必拧着来呢
NovemberEleven
2017-12-21 17:47:48 +08:00
一个 Activity 一个 View,view 自管理,能放任何容器,例如:activity,dialog,fragment。
xxstop
2017-12-21 18:16:08 +08:00
mark,我做过一个 Android 客户端,用的多个 Activity + 多个 Fragment,然后后面改成了一个 Activity + 多个 Fragment 的模式,感觉 Fragment 可以重用也挺棒的。
WordTian
2017-12-21 18:33:13 +08:00
看适配需求
leiweibo
2017-12-21 18:47:51 +08:00
至于采用哪种好暂时说不上,但是在使用 fragment 下面几点需要注意:
1. 控制好页面的可见和不可见状态的判断,因为项目里面可能会用到页面是否可见来做一些逻辑处理;前面的弄懂了之后,记得弄一种统一处理的机制: 如果 fragment 如果嵌套 frament 情况下,如何判断子页面是否可见的机制也要弄好统一处理。
ps: fragment 里面判断可见不可见,可以通过 isHidden()&getUserVisibleHint()来判断,他们之间的区别你一定要搞清楚。
2. 多个页面切换用 fragment 去实现,你是到底用 viewpager 呢,还是直接用放到一个 layout 里面,切换效果通过自己动画去实现,直接去 show()或者 hide()这个最好统一处理,不然有些时候可能会搞死你。


暂时就想到这么多。
iFlicker
2017-12-21 20:31:27 +08:00
都可以的,只是 fragment 坑多要注意
davy1995
2017-12-21 21:38:30 +08:00
Jake Wharton 建议一个应用只使用一个 Activity
saberpowermo
2017-12-22 11:17:59 +08:00
我们公司开发了 3-4 个产品了
你说的这几种方式我们都用过了 而且都很成熟的 运营上线了,没有出什么问题
但是回过头看 最累的一次开发 就是单 Activity 多 Fragment 那次 队友集体表示 再也不碰了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/416486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX