Fragment show和hide
来源:互联网 发布:plc编程100例下载 编辑:程序博客网 时间:2024/05/17 10:09
import android.support.annotation.IdResimport android.support.v4.app.Fragmentimport android.support.v4.app.FragmentActivityimport android.support.v4.app.FragmentManagerimport android.support.v4.app.FragmentTransactionimport android.os.Bundleimport android.widget.RadioGroupimport com.bwlq.fragment.Frag1import com.bwlq.fragment.Frag2import com.bwlq.fragment.Frag3import java.util.ArrayListimport java.util.Listpublic class MainActivity extends FragmentActivity { private FragmentManager supportFragmentManager private RadioGroup radioGroup private Frag1 frag1 private Frag2 frag2 private Frag3 frag3 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) radioGroup = (RadioGroup) findViewById(R.id.rg) supportFragmentManager = getSupportFragmentManager() FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction() frag1 = new Frag1() fragmentTransaction.add(R.id.fl, frag1).commit() radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { hideFragmentAll() FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction() switch (i) { case R.id.rb1: fragmentTransaction.show(frag1).commit() break case R.id.rb2: if (frag2 == null) { frag2 = new Frag2() fragmentTransaction.add(R.id.fl, frag2).commit() } else { fragmentTransaction.show(frag2).commit() } break case R.id.rb3: if (frag3 == null) { frag3 = new Frag3() fragmentTransaction.add(R.id.fl, frag3).commit() } else { fragmentTransaction.show(frag3).commit() } break } } }) } private void hideFragmentAll() { FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction() if (frag1 != null && frag1.isAdded()) { fragmentTransaction.hide(frag1) } if (frag2 != null && frag2.isAdded()) { fragmentTransaction.hide(frag2) } if (frag3 != null && frag3.isAdded()) { fragmentTransaction.hide(frag3) } fragmentTransaction.commit() }}