Android底部fragment互相跳转
16lz
2021-01-26
假如要实现一个这样的功能,在主页面MainActivity创建了四个底部Fragment,ABCD,点击B的时候有个按钮想要实现跳转D页面,可以这样实现。
首先要保证当前Activity启动模式为singleTask,详细查看 https://www.jianshu.com/p/bd1cfc31b035
在MainActivity中重写onNewIntent方法
@Overrideprotected 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的方法需要大家们独立创新,莫的感情啊,再见。
更多相关文章
- Android(安卓)extends和implements不同
- Android(安卓)壁纸设置_01
- html5开发全屏android软件
- Android(安卓)Matrix进阶方法详解
- Android中View和ViewGroup事件分发拦截机制完美分析
- android service与activity交互的方试
- Android(安卓)library projects cannot be launched解决方法
- Android(安卓)AsyncTask和Handler对比
- Android之Banner的滚动轮播实现