仿qq底部Tab导航,三级缓存和二级缓存的区别

((RadioButton)mRg.getChildAt(position)).setChecked(true);initListener();}private void initListener() {mRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {Ra
摘要由CSDN通过智能技术生成

((RadioButton)mRg.getChildAt(position)).setChecked(true);

initListener();

}

private void initListener() {

mRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

RadioButton radioButton = (RadioButton) group.findViewById(checkedId);

if (false == radioButton.isChecked()) {

return;

}

switch (checkedId) {

case R.id.rb_home:

position = 0;

break;

case R.id.rb_course:

position = 1;

break;

case R.id.rb_direct_seeding:

position = 2;

break;

case R.id.rb_me:

position = 3;

break;

default:

position = 0;

break;

}

LUtils.i(“position==” + position);

Fragment to = mFragments.get(position);

showFragment(mCurFragment, to);

mCurFragment = to;

}

});

}

private void showFragment(Fragment from, Fragment to) {

FragmentManager supportFragmentManager = getSupportFragmentManager();

FragmentTransaction transaction = supportFragmentManager.beginTransaction();

if (!to.isAdded()) { // 先判断是否被add过

transaction.hide(from).add(R.id.fl, to).commit(); // 隐藏当前的fragment,add下一个到Activity中

} else {

transaction.hide(from).show(to).commit(); // 隐藏当前的fragment,显示下一个

}

}

/**

  • 这个方法用老替换fragment

  • xujun

  • 2016/5/3 17:28.

*/

private void replaceFragment(Fragment fragmeny) {

FragmentManager supportFragmentManager = getSupportFragmentManager();

FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();

fragmentTransaction.replace(R.id.fl, fragmeny).commit();

}

}

思路解析

  • 实例化各个控件,这里代码就不贴出来了

  • 初始化 Fragemnt 和选中各个tab

mFragments = new ArrayList<>();

for (int i = 0; i < mTiltles.length; i++) {

ItemFragement itemFragement = ItemFragement.newInstance(mTiltles[i]);

mFragments.add(itemFragement);

}

mCurFragment = mFragments.get(position);

replaceFragment(mCurFragment);

((RadioButton)mRg.getChildAt(position)).setChecked(true);

private void replaceFragment(Fragment fragmeny) {

FragmentManager supportFragmentManager = getSupportFragmentManager();

FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();

fragmentTransaction.replace(R.id.fl, fragmeny).commit();

}

  • 第三步,通过监听RadioGroup的 OnCheckedChangeListener事件,来实现tab和Fragemnt的切换

mRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

RadioButton radioButton = (RadioButton) group.findViewById(checkedId);

if (false == radioButton.isChecked()) {

return;

}

switch (checkedId) {

case R.id.rb_home:

position = 0;

break;

case R.id.rb_course:

position = 1;

break;

case R.id.rb_direct_seeding:

position = 2;

break;

case R.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值