Android優化之切換Fragment
阿新 • • 發佈:2018-11-08
切換Fragment的方法簡介replace()
該方法只是在上一個Fragment不再需要時採用的簡便方法show() hide() add()
正確的切換方式是add(),切換時hide(),add()另一個Fragment;再次切換時,只需hide()當前,show()另一個
看原始碼吧
//錯誤的做法 //每次切換的時候,Fragment都會重新例項化,重新載入一邊資料,這樣非常消耗效能和使用者的資料流量 public void switchFragment(Fragment targetFragment) { if (targetFragment == null) return; FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); //目標Fragment替換原來的Fragment transaction.replace(R.id.content, targetFragment); transaction.commit(); }
//正確的做法 private void switchFragment(Fragment targetFragment) { FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction(); if (!targetFragment.isAdded()) { transaction .hide(currentFragment) .add(R.id.main_fragment, targetFragment) .commit(); System.out.println("還沒新增呢"); } else { transaction .hide(currentFragment) .show(targetFragment) .commit(); System.out.println("添加了( ⊙o⊙ )哇"); } currentFragment = targetFragment; }
作者:AlicFeng
連結:http://www.jianshu.com/p/aa762fe166a8
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。