Fragment互相切换,点击Fragment上的按钮跳转到Fragment简单总结

项目当中遇到了,一个头疼问题,布局主要采用MainActivity 挂载 Fragment 来显示内容,并实现点击底部标签实现切换。但是头疼的是项目当中有一个需求就是点击某个Fragment也面上的按钮跳转到 另一个Fragment上。找了好多资料效果都不理想。后来在朋友的帮助下 找到了方法 。下面简单的总结一下,注意事项和参数都在注视当中写了不在赘述。



    /**
     * changeToClassifyFragment()该方法与changFragmentByTag()配合使用,可以实现Fragment点击底部标签切换,同样可以实现点击Fragment上的按钮
     * 来控制切换Frgment 在Fargment调用MainActivity的changeToClassifyFragment()的方法为 ((MainActivity) getActivity()).changeToClassifyFragment();
     * 注意这里必须进行一下强转,Fragment才能调用MainActivity的方法。currentFragment 为当前显示的Fragment 。简单总结希望对大家有帮助
     *((MainActivity) getActivity()).changeToClassifyFragment();
     *  */
public void changeToClassifyFragment() {
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    if (fragClassify == null) {
        fragClassify = new FragmentClassify();
    }
    homePageImgBtn.setImageResource(R.mipmap.ic_home_per);
    homePageTv.setTextColor(getResources().getColor(R.color.bottomtab_normal));
    classifyImgBtn.setImageResource(R.mipmap.ic_classify_check);
    classifyTv.setTextColor(getResources().getColor(
            R.color.bottomtab_press));
    scanImgBtn.setImageResource(R.mipmap.erweima);
    shoppingCartImgBtn.setImageResource(R.mipmap.ic_shopping_per);
    shoppingCartTv.setTextColor(getResources().getColor(
            R.color.bottomtab_normal));
    mySetImgBtn.setImageResource(R.mipmap.ic_my_per);
    mySetTv.setTextColor(getResources().getColor(
            R.color.bottomtab_normal));
    currentFragment =changFragmentByTag(currentFragment, fragClassify, ft, "HiliFragment");
}

    public  Fragment changFragmentByTag(Fragment currFragment, Fragment chooseFragment, FragmentTransaction ft,String TAG) {
        if (currFragment != chooseFragment) {
            ft.hide(currFragment);
            if (chooseFragment.isAdded()) {
                ft.show(chooseFragment);
            } else {
                ft.add(R.id.content_layout, chooseFragment, TAG);
            }
        }
        ft.commitAllowingStateLoss();
        return chooseFragment;
    }


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值