fragment清除頁面資料(重新載入佈局)
上一篇部落格介紹瞭如何解決Fragment重疊的問題,有需要的同學可以看一下,底部有demo下載。
直通車:完美解決Fragment重疊
本篇部落格我們來說一下怎麼讓fragment重新載入佈局資原始檔。以及要注意的問題。
首先來說一下為什麼有這個需求。
比如,我有這麼一個頁面,如下圖
該頁面要填寫一大堆資料,然後點選提交會把當前頁面的資料提交到伺服器,提交完成後我想把當前頁面已填寫的資料給清除掉。怎麼辦呢?
最笨的方法就是,我找到每個控制元件,然後賦個空值,不過這樣也太麻煩了點,而且也不好維護。
簡單點的辦法就是,當我提交完成後,先把該fragment移除掉,然後重新建立載入一遍,這樣一來,頁面的資料就回到初始狀態了。
需要注意的是要處理好fragment的移除和新增顯示操作,避免出現重疊的bug
在fragment中呼叫一下父activity中的reLoadFragView()方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.submit:
/*模擬提交成功後 重新載入佈局*/
MainActivity activity= (MainActivity) getActivity();
activity.reLoadFragView();
break;
}
return super.onOptionsItemSelected(item);
}
MainActivity中現將fragment移除,然後重新新增顯示即可。
/*重新載入佈局*/
public void reLoadFragView(){
/*現將該fragment從fragmentList移除*/
if (fragmentList.contains(dashboardFragment)){
fragmentList.remove(dashboardFragment);
}
/*從FragmentManager中移除*/
getSupportFragmentManager().beginTransaction().remove(dashboardFragment).commit();
/*重新建立*/
dashboardFragment=new DashboardFragment();
/*新增到fragmentList*/
fragmentList.add(dashboardFragment);
/*顯示*/
showFragment(dashboardFragment,DASHBOARD_FRAGMENT_KEY);
}
需要注意的是,如果報Can not perform this action after onSaveInstanceState這個錯誤的話,就把commit更改為commitAllowingStateLoss即可。
效果圖:
下面是demo,希望能幫到你。
如果你覺得本文對你有幫助,麻煩動動手指頂一下,算是對本文的一個認可,如果文中有什麼錯誤的地方,還望指正,轉載請註明轉自喻志強的部落格 ,謝謝!
相關文章
- 頁面佈局
- CSS入門指南-4:頁面佈局CSS
- Zend Framework 入門(4)—頁面佈局Framework
- css頁面佈局CSS
- 【Android】在Activity頁面中如何實現Fragment資料的緩載入AndroidFragment
- 頁面佈局 layui與 layui的匯入UI
- 快應用入門--頁面佈局篇
- 常見頁面佈局
- 更快速、更精簡的頁面重新載入
- layui 資料表格重新載入資料分頁器回到第一頁UI
- 靜態頁面佈局例項
- 登陸頁面樣式佈局
- ExtJs頁面佈局詳解JS
- Bootstrap頁面佈局13 - BS按鈕boot
- 1.9 靜態頁面佈局例項
- 頁面佈局的相關內容
- Dcat Admin 構建頁面佈局
- React Native 頁面佈局簡介React Native
- android viewpager使用Fragment懶載入,滑到當前fragment才進行資料載入AndroidViewpagerFragment
- 動態頁面資料載入不全的問題
- SAP Spartacus Page Layout - 頁面佈局設計
- 實戰電商頁面1:靜態佈局
- Android 頁面多狀態佈局管理Android
- html頁面實現聖盃佈局flexHTMLFlex
- [譯]ASP.NET Core 2.0 佈局頁面ASP.NET
- 頁面佈局自適應之@media screen
- 從頁面載入到資料請求,前端頁面效能優化實踐分享前端優化
- vuex頁面重新整理後資料丟失Vue
- 面試:頁面載入海量資料面試
- ASP.NET Web Pages – 頁面佈局簡介ASP.NETWeb
- 怎麼恢復spyder預設頁面佈局
- ModernUI教程:使用預定義的頁面佈局UI
- Activity 是如何載入佈局的?
- 用 preload 預載入頁面資源
- 網頁佈局------幾種佈局方式網頁
- JS頁面重新整理保持資料不丟失JS
- ajax無重新整理載入資料
- 網站頁面規劃和佈局的方法技巧網站