Android底部fragment互相跳转

假如要实现一个这样的功能,在主页面MainActivity创建了四个底部Fragment,ABCD,点击B的时候有个按钮想要实现跳转D页面,可以这样实现。
首先要保证当前Activity启动模式为singleTask,详细查看 https://www.jianshu.com/p/bd1cfc31b035
在MainActivity中重写onNewIntent方法

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
    checkToggleMenu();// 切换
}
/**
 * 切换(从activity跳转回来)
 */
private void checkToggleMenu(){

    int keyTo = getIntent().getIntExtra(KEY_ACTION, -1);
    if(keyTo != -1)
    {
        btns[preBtnIndex].setSelected(false);
        btns[keyTo].setSelected(true);
        try {
            if (mFragments[keyTo] == null) {
                mFragments[keyTo] = (Fragment) AppConfig.MAIN_TAB_FRAGMENTS[keyTo].newInstance();
            }
            // 切换内容
            switchContent(mFragments[mPrevious],
                    mFragments[keyTo]);
            mPrevious = keyTo;
        }
        catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        preBtnIndex = keyTo;
    }
}

我知道大家看不懂我这个返回跳转的方法是什么意思,其实这就是一个选择位置fragment的方法
大家可以根据自己的使用习惯来修改,只需要拿回它返回的状态数字就可以了,接下来是最主要的一个方法

Intent intent = AppIntent.getMainActivity(mContext);
intent.putExtra(MainActivity.KEY_ACTION, X);  //这个X就是当前fragment的索引
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

好了,最后要靠自己实现了,实现操作是可以用的,麻烦就在于切换fragment的方法需要大家们独立创新,莫的感情啊,再见。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值