1. 程式人生 > >使用事務通過show/hide切換Fragment(程式碼片段)----蘇蘇的小弟子

使用事務通過show/hide切換Fragment(程式碼片段)----蘇蘇的小弟子

radioGroup = findViewById(R.id.rg);
// 預設顯示第一個Fragment
supportFragmentManager = getSupportFragmentManager();
fragment01 = new Fragment01();
FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
fragmentTransaction.add(R.id.frag, fragment01).commit();
// 切換Fragment
radioGroup.setOnCheckedChangeListener(new 
RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { hideAllFragment(); FragmentTransaction f = supportFragmentManager.beginTransaction(); switch (i) { case R.id.rb1: f.show(fragment01
).commit(); break; case R.id.rb2: if(fragment02==null){ fragment02 = new Fragment02(); f.add(R.id.frag,fragment02).commit(); }else{ f.show(fragment02).commit(); } break; case
R.id.rb3: if(fragment03==null){ fragment03 = new Fragment03(); f.add(R.id.frag,fragment03).commit(); }else{ f.show(fragment03).commit(); } break; } } }); } // 隱藏所有的Fragment public void hideAllFragment() { FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); if (fragment01 != null && fragment01.isAdded()) { fragmentTransaction.hide(fragment01); } if (fragment02 != null && fragment02.isAdded()) { fragmentTransaction.hide(fragment02); } if (fragment03 != null && fragment03.isAdded()) { fragmentTransaction.hide(fragment03); } fragmentTransaction.commit(); }