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
    评论
要使用Fragment实现底部导航栏的跳转,您需要执行以下步骤: 1. 在您的项目中创建一个BottomNavigationView对象,它将用于显示底部导航栏。 2. 创建多个Fragment类,每个类都代表底部导航栏的一个选项。 3. 在您的Activity类中,创建一个FragmentManager对象并使用beginTransaction()方法开始一个新的FragmentTransaction。 4. 在FragmentTransaction中,使用add()方法将您的第一个Fragment添加到Activity中。同时,将BottomNavigationView的setOnNavigationItemSelectedListener()方法定义为一个监听器,以便在用户点击底部导航栏时执行相应的操作。 5. 在监听器中,使用replace()方法切换到用户选择的Fragment。 以下是一个简单的示例代码,可以帮助您更好地理解如何使用Fragment实现底部导航栏的跳转: ``` public class MainActivity extends AppCompatActivity { private BottomNavigationView bottomNavigationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bottomNavigationView = findViewById(R.id.bottom_navigation); // 设置默认选中项 bottomNavigationView.setSelectedItemId(R.id.navigation_home); // 设置监听器 bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { Fragment fragment; switch (menuItem.getItemId()) { case R.id.navigation_home: fragment = new HomeFragment(); break; case R.id.navigation_dashboard: fragment = new DashboardFragment(); break; case R.id.navigation_notifications: fragment = new NotificationsFragment(); break; default: return false; } getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, fragment) .commit(); return true; } }); } } ``` 在这个例子中,我们首先获取了一个BottomNavigationView对象,并将其与我们的布局文件关联。我们还设置了默认选中项并添加了一个监听器。 在监听器中,我们使用了一个switch语句来确定用户选择了哪个选项。然后我们创建了相应的Fragment,并使用replace()方法将其添加到Activity中。 请注意,我们使用了一个FrameLayout来承载我们的Fragment。您需要在布局文件中添加一个类似的视图,以便能够动态添加和删除Fragment。 希望这可以帮助您开始使用Fragment实现底部导航栏的跳转

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值