Fragment切換 儲存狀態(add show hide)
阿新 • • 發佈:2019-02-03
前言
關於Fragment的切換問題也是遇到好多次了,今天有時間做一個簡單的記錄。常見的我們會在底部Tab的切換時用到,當然,這篇文章也只是簡單的說明如何去實現,就先不深究其所以然了,因為網上已經有很多關於Fragment add 和 replace區別的文章了,自己沒有獨到的見解寫再多也是顯的蒼白無力。
Fragment切換的兩種方式
1. replace
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(layoutId,fragment).commit;
2. add ( show、hide )
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().add(layoutId,fragment).commit;
例項程式碼
/**
* @param currentFragment 當前顯示的Fragment
* @param toFragment 將要跳轉的Fragment
*/
public void switchContent(Fragment currentFragment, Fragment toFragment) {
FragmentTransaction transaction = fragmentManager.beginTransaction();
// 先判斷是否被add過
if (!to.isAdded()) {
// 隱藏當前的fragment,add下一個到Activity中
transaction.hide(from).add(R.id.parent_layout, to).commit();
} else {
transaction.hide(from).show(to).commit(); // 隱藏當前的fragment,顯示下一個
}
}
這個就是主要用到的方法了,一般我們會在MainActivity或者要顯示這些Fragment的宿主類中先初始化add一個預設顯示的fragment,將currentFragment設定預設值,然後在點選底部Tab按鈕的時候便去呼叫上面的方法。切換你要顯示的fragment並重新賦值currentFragment 。Perfact^_^…