有關管理多個Fragment

MoneyCitys 2015-12-23 05:29:31
雖然很多方法都可以達到目的
但是老覺得不太對, 想問問大家應該怎樣做才對

一個app裡只使用一個Activity, 其他頁面全都用Fragment去做
假設現在顯示的頁面是Fragment A
接著點中了Fragment A的某個Button所以要切換到 Fragment B
但是Fragment B要顯示大量數據

然後數據的來源可以有以下幾種
1. 在Fragment A做完, 然後設給Activity, 接著將頁面切到Fragment B , 再去Activity抓

2. 直接切換到Fragment B, 再由Fragment B自己去抓數據(這樣會有空白時間)

3. 一開始就直接在Activity將所有的Fragment宣告出來, 設置多個得到Fragment的接口,
在Fragment B設置一個setData的方法設數據
Fragment A將資料載完後直接從Activity得到Fragment B的instance呼叫setData
最後再切換頁面


因為數據多且複雜, 不能用Bundle, 請問該怎麼做才對
以上的方式都是自己工作時順便想的, 因為接觸不久身邊也沒其他前輩不知正規的方式該如何做
...全文
160 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
daydreary 2015-12-24
  • 打赏
  • 举报
回复
引用 2 楼 MoneyCitys 的回复:
[quote=引用 1 楼 daydreary 的回复:] 直接切换到fragmentB为什么会有空白? 在数据加载时候应该把加载界面显示给用户,比如加载圈或进度条
除了這點還有想到因為是跟伺服器溝通, 怕因為網路或者其他因素加載失敗的話那界面該怎麼辦 所以就想著乾脆停在原頁面, 若加載失敗直接跳個Toast之類訊息框[/quote] 失败的话应该显示加载失败的界面。 比如上面放一张提示的图片,然后写着“抱歉,加载失败”
MoneyCitys 2015-12-24
  • 打赏
  • 举报
回复
看來大家都傾向於2 好的, 這樣心裡也有個底了 感謝各位
MoneyCitys 2015-12-24
  • 打赏
  • 举报
回复
看來大家都傾向於2 好的, 這樣心裡也有個底了 感謝各位
柒加伊 2015-12-23
  • 打赏
  • 举报
回复
可以切换到B界面之后, 掉用Activity里面的方法调取数据. Fragment本身是为了遵循MVC结构, 所以, Fragment里面一般都是控件以及界面相关的, activity里面一般是数据相关的, 这样就实现了界面与数据的分离. 你所提到的界面空白, 如果是调取网络数据的话, 可以添加加载框进行遮挡.
_deadline 2015-12-23
  • 打赏
  • 举报
回复
用EventBus好了
MoneyCitys 2015-12-23
  • 打赏
  • 举报
回复
引用 1 楼 daydreary 的回复:
直接切换到fragmentB为什么会有空白? 在数据加载时候应该把加载界面显示给用户,比如加载圈或进度条
除了這點還有想到因為是跟伺服器溝通, 怕因為網路或者其他因素加載失敗的話那界面該怎麼辦 所以就想著乾脆停在原頁面, 若加載失敗直接跳個Toast之類訊息框
daydreary 2015-12-23
  • 打赏
  • 举报
回复
直接切换到fragmentB为什么会有空白? 在数据加载时候应该把加载界面显示给用户,比如加载圈或进度条

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧