YoKeyword / Fragmentation

[DEPRECATED] A powerful library that manage Fragment for Android
Apache License 2.0
9.72k stars 2.11k forks source link

返回首页问题 #1142

Closed zhangjianwei1 closed 5 years ago

zhangjianwei1 commented 5 years ago

AP首页是用的mFragments[FIRST] = MainFragment.newInstance(); mFragments[SECOND] = CateFragment.newInstance(); mFragments[THIRD] = ServiceFragment.newInstance(); mFragments[FOURTH] = MineFragment.newInstance();

        loadMultipleRootFragment(R.id.fl_container, FIRST,
                mFragments[FIRST],
                mFragments[SECOND],
                mFragments[THIRD],
                mFragments[FOURTH]);

这种方式加载的,现在有一个页面有返回首页的操作,但是这个页面MainFragment和CateFragment都可以进入,调用popto方法怎么获取到根fragment,使他上边的所有fragment出栈,然后跳转到首页

cocowobo commented 5 years ago

findfragment方法就可以,注意传入的fm。假设你的根fragment为主页fragment。可以((zhuyefragement)findfragment(zhuyefragement.class)).startWithPopTo你需要打开的页面即可

zhangjianwei1 commented 5 years ago

意思是我每次newInstent()的时候加一个参数记录是从哪个fragment进入的是么

cocowobo commented 5 years ago

不是。你问题的描述,很模糊,如果你能把问题描述的更加清晰。才可以更好的给你提出解决方案,我都是在揣测你的问题本质

zhangjianwei1 commented 5 years ago

抱歉,是我没有描述清楚,现在的情况是首页平级A,B,C,D四个页面,现在有一个需求是从A-E-F,然后从B也可以到F页面,但是从F页面返回的时候要选中C页面,这种情况应该怎么处理呢

star-andy commented 5 years ago

findFragment就能拿到你首页的实例 然后可以再首页提供一个选中c的方法 从f返回时调用下

cocowobo commented 5 years ago

首先我来揣测你的遗漏的点。 ABCD4个平级页面是在 一个activity中的,或者是在一个fragment中的,一般下面下边是4个tab按钮,就和微信的4个页面一样, 1.如果你是a启动e。那么肯定是让a交由上一级的父亲来启动e的。否则a直接启动e是有bug的。t会导致e无法盖住下面的tab。 2.假设你让a交由父亲启动了e,有启动了f,,这个时候e和f不是和a处于一个等级的。e和f是和a的父亲是一个等级的。才能覆盖tab。 3.f返回想显示c。那么c是由父亲操作的。也就是 父亲(父类fragment或者父类activity)需要监听到f的返回,同时响应处理,只需要在父亲中监听eventbus发送的事件。就可以f返回的时候发送事件到父亲。然后父亲响应处理切换a或者b 到c。 4。懂了吗?

zhangjianwei1 commented 5 years ago

ABCD4个平级页面是在 一个activity中的,现在我启动新的fragment是通过start方法,请问一下这个activity中的ABCD四个平级页面应该怎么启动页面才是通过父级启动的呢

lovemianhuatang commented 4 years ago

怎么回到首页的? 我回到了主MainActivity 但是有几个Fragment 没有回到首页的Fragment