每次点击Fragment都要重新加载

也在网上看到一些解决方案,好像和我这个不是很符合,给我个思路
我的代码
switch (checkedId) {
case R.id.rbChat:
if (address==null) {
chat = new FragmentChat();
}
Log.i("MyFragment", "FragmentAddress");
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.main_content, chat)
.commit();
break;
case R.id.rbAddress:
if (address==null) {
address =new FragmentAddress();
}
Log.i("MyFragment", "FragmentAddress");
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.main_content, address)
.commit();
break;
case R.id.rbMe:
if (address==null) {
me = new FragmentMe();
}
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.main_content, me)
.commit();

show(),hide()方式来显示或者隐藏fragment,采用replace()每次都要从重新生成fragment对象