概述
1.Fragment跳转到Fragment中**
描述:我的项目是由MainActivity启动的Fragment作为底部导航栏(HomeFragment、StoreFragment、PersonalFragment);
情景一:点击HomeFragment中的按钮跳转到StoreFragment中
HomeFragment中 代码写进点击事件里面
MainActivity mainActivity= (MainActivity) getActivity();
mainActivity.setTab(2);
MainActivity中创建以下方法(也可以把鼠标点击到 HomeFragment中上面的代码的setTab(2)上点击键盘的Alt+Enter选择Create method 'setTab’在MainActivity中创建下面的方法)
public void setTab(int i) {
//这里的mBtnAddressList是StoreFragment按钮的id
mBtnAddressList.performClick();
}
2.Activity跳转到Fragment中**
情景二:点击Activity中的按钮 跳转到StoreFragment中
思路是:首先先关闭你打开的所有的Activity 然后向MainActivity中传值 到MainActivity中接收 进行MainActivity中代码启动StoreFragment
Activity中在点击事件里面写
Intent intent = new Intent(ConfirmGoodsOrderActivity.this,MainActivity.class);
//跳转到主界面后,并将栈底的Activity全部都销毁
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//向MainActivity中传入这个值
intent.putExtra("toMy",true);
startActivity(intent);
MainActivity中
@Override
//getBundleExtras方法是取到你上个页面传回来的值
protected void getBundleExtras(Bundle extras) {
//toMy是一个Boolean值 (先定义toMy的全局变量为false)表示刚没点击按钮的时候为false
toMy=extras.getBoolean("toMy",false);
}
new Handler().postDelayed(new Runnable() {
//延迟跳转到界面(不延迟会导致我的界面没创建完成 导致闪退)
@Override
public void run() {
//假如toMy的值为true(表示你点击了点击事件传回来的值为true)
if (toMy){
//这是跳转页面
change(3);
}
}
}, 200); //0.2秒
}
这是MainActivity中的change方法
public void change(int indexs) {
index = indexs;
if (currentTabIndex != index) {
FragmentTransaction trx = getSupportFragmentManager().beginTransaction();
trx.hide(fragments[currentTabIndex]);
if (!fragments[index].isAdded()) {
trx.add(R.id.fragment_container, fragments[index]);
}
trx.show(fragments[index]).commitAllowingStateLoss();
}
用Android Studio系统自带的BottomNavigationView模板Fragment跳转Fragment
//这里的R.id.navigation_dashboard是你要跳转到页面的id
Navigation.findNavController(view).navigate(R.id.navigation_dashboard);
本篇是个人项目的跳转,不一定每个人都适用 小子是android原生的小白 第一次发文章,希望大牛们勿喷。
最后
以上就是糊涂烧鹅为你收集整理的Android中Fragmnet的跳转的全部内容,希望文章能够帮你解决Android中Fragmnet的跳转所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复