我是靠谱客的博主 糊涂烧鹅,最近开发中收集的这篇文章主要介绍Android中Fragmnet的跳转,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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的跳转所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部