android fragment的切换
2016-12-05 15:37
477 查看
1. 选择1
2.选择2
public class MainActivity extends AppCompatActivity {
@Bind(R.id.fl_containers)
FrameLayout flContainers;
@Bind(R.id.rb_home)
RadioButton rbHome;
@Bind(R.id.rb_find)
RadioButton rbFind;
@Bind(R.id.rb_message)
RadioButton rbMessage;
@Bind(R.id.rb_shopping)
RadioButton rbShopping;
@Bind(R.id.rb_my)
RadioButton rbMy;
@Bind(R.id.rg_buttons)
RadioGroup rgButtons;
private FragmentManager fm;
FragmentTransaction ft;
Fragment fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
rgButtons = (RadioGroup) findViewById(R.id.rg_buttons);
rbHome = (RadioButton) findViewById(R.id.rb_home);
select(R.id.rb_home);
rbFind = (RadioButton) findViewById(R.id.rb_find);
rbMessage = (RadioButton) findViewById(R.id.rb_message);
rbShopping = (RadioButton) findViewById(R.id.rb_shopping);
rbMy = (RadioButton) findViewById(R.id.rb_my);
rgButtons.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i) {
case R.id.rb_home:
select(R.id.rb_home);
break;
case R.id.rb_find:
select(R.id.rb_find);
break;
case R.id.rb_message:
select(R.id.rb_message);
break;
case R.id.rb_shopping:
select(R.id.rb_shopping);
break;
case R.id.rb_my:
select(R.id.rb_my);
break;
}
}
});
}
private void select(int i){
{
fm = getSupportFragmentManager();
ft = fm.beginTransaction();
switch (i) {
case R.id.rb_home:
rbHome.setChecked(true);
hideFragment();
fragment= fm.findFragmentByTag("fragmentHome");
if(fragment==null){
fragment=new FragmentHome();
ft.add(R.id.fl_containers,fragment,"fragmentHome");
}else{
ft.show(fragment);
}
break;
case R.id.rb_find:
rbFind.setChecked(true);
hideFragment();
fragment= fm.findFragmentByTag("fragmentFind");
if(fragment==null){
fragment=new FragmentFind();
ft.add(R.id.fl_containers,fragment,"fragmentFind");
}else{
ft.show(fragment);
}
break;
case R.id.rb_message:
rbMessage.setChecked(true);
hideFragment();
fragment
a3d9
= fm.findFragmentByTag("FragmentMessage");
if(fragment==null){
fragment= new FragmentMessage();
ft.add(R.id.fl_containers,fragment,"FragmentMessage");
}else{
ft.show(fragment);
}
break;
case R.id.rb_shopping:
rbShopping.setChecked(true);
hideFragment();
fragment = fm.findFragmentByTag("fragmentShopping");
if(fragment==null){
fragment = new FragmentShopping();
ft.add( R.id.fl_containers,fragment,"fragmentShopping");
}else{
ft.show(fragment);
}
break;
case R.id.rb_my:
rbMy.setChecked(true);
hideFragment();
fragment = fm.findFragmentByTag("fragmentMy");
if(fragment==null){
fragment = new FragmentMy();
ft.add(R.id.fl_containers,fragment,"fragmentMy");
}else{
ft.show(fragment);
}
break;
}
ft.commit();
}
}
private void hideFragment() {
if(fragment!=null){
ft.hide(fragment);
}
}
}
displayFrag 要显示的fragment
private void display(Fragment displayFrag) { if (fragment != null) { ft.hide(fragment); } if (fragment != displayFrag || fragment==null ) { fm = getSupportFragmentManager(); ft = fm.beginTransaction(); if (displayFrag == null) return; if (displayFrag.isAdded()) { ft.show(displayFrag); } else { ft.add(R.id.container, displayFrag); } fragment = displayFrag; ft.commit(); } }
2.选择2
public class MainActivity extends AppCompatActivity {
@Bind(R.id.fl_containers)
FrameLayout flContainers;
@Bind(R.id.rb_home)
RadioButton rbHome;
@Bind(R.id.rb_find)
RadioButton rbFind;
@Bind(R.id.rb_message)
RadioButton rbMessage;
@Bind(R.id.rb_shopping)
RadioButton rbShopping;
@Bind(R.id.rb_my)
RadioButton rbMy;
@Bind(R.id.rg_buttons)
RadioGroup rgButtons;
private FragmentManager fm;
FragmentTransaction ft;
Fragment fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
rgButtons = (RadioGroup) findViewById(R.id.rg_buttons);
rbHome = (RadioButton) findViewById(R.id.rb_home);
select(R.id.rb_home);
rbFind = (RadioButton) findViewById(R.id.rb_find);
rbMessage = (RadioButton) findViewById(R.id.rb_message);
rbShopping = (RadioButton) findViewById(R.id.rb_shopping);
rbMy = (RadioButton) findViewById(R.id.rb_my);
rgButtons.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i) {
case R.id.rb_home:
select(R.id.rb_home);
break;
case R.id.rb_find:
select(R.id.rb_find);
break;
case R.id.rb_message:
select(R.id.rb_message);
break;
case R.id.rb_shopping:
select(R.id.rb_shopping);
break;
case R.id.rb_my:
select(R.id.rb_my);
break;
}
}
});
}
private void select(int i){
{
fm = getSupportFragmentManager();
ft = fm.beginTransaction();
switch (i) {
case R.id.rb_home:
rbHome.setChecked(true);
hideFragment();
fragment= fm.findFragmentByTag("fragmentHome");
if(fragment==null){
fragment=new FragmentHome();
ft.add(R.id.fl_containers,fragment,"fragmentHome");
}else{
ft.show(fragment);
}
break;
case R.id.rb_find:
rbFind.setChecked(true);
hideFragment();
fragment= fm.findFragmentByTag("fragmentFind");
if(fragment==null){
fragment=new FragmentFind();
ft.add(R.id.fl_containers,fragment,"fragmentFind");
}else{
ft.show(fragment);
}
break;
case R.id.rb_message:
rbMessage.setChecked(true);
hideFragment();
fragment
a3d9
= fm.findFragmentByTag("FragmentMessage");
if(fragment==null){
fragment= new FragmentMessage();
ft.add(R.id.fl_containers,fragment,"FragmentMessage");
}else{
ft.show(fragment);
}
break;
case R.id.rb_shopping:
rbShopping.setChecked(true);
hideFragment();
fragment = fm.findFragmentByTag("fragmentShopping");
if(fragment==null){
fragment = new FragmentShopping();
ft.add( R.id.fl_containers,fragment,"fragmentShopping");
}else{
ft.show(fragment);
}
break;
case R.id.rb_my:
rbMy.setChecked(true);
hideFragment();
fragment = fm.findFragmentByTag("fragmentMy");
if(fragment==null){
fragment = new FragmentMy();
ft.add(R.id.fl_containers,fragment,"fragmentMy");
}else{
ft.show(fragment);
}
break;
}
ft.commit();
}
}
private void hideFragment() {
if(fragment!=null){
ft.hide(fragment);
}
}
}
相关文章推荐
- android群英传学习--弧线展示图与自定义topbar
- Android 轻松的查看与使用hide与internal API
- 安卓使用加解密异常集合
- android省市区区域联动地址优化
- Android笔记——AsyncTask介绍
- Android-25种开源炫酷动画框架
- 笔记——android EditText多行显示并且支持imeOptions
- Android动画流畅心得
- Android 圆形ImageView实战
- weex入门学习总结
- Android数据绑定框架DataBinding,堪称解决界面逻辑的黑科技
- Android平台OCR工具之Tess-two使用
- RecyclerView实现瀑布流,图片自适应高度
- Android Studio导入aar依赖文件
- Android开发 — 双指长按实现
- Android 调试技巧
- android4.0触摸屏(touchscreen)以及屏幕按键驱动解析
- 用gradle打包android_apk时遇到的一些问题
- Android Studio 2.2 问题汇总 - 解决障碍
- Android MPEG4Writer.cpp 简单跟读