如何从一个片段传递到另一个片段 [英] How to pass from one fragment to another

查看:159
本文介绍了如何从一个片段传递到另一个片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,我有一些带有碎片的导航抽屉。当我在抽屉中选择代码时:

  FragmentTransaction ft = fm.beginTransaction(); 
ft.replace(R.id.container,f,tag);
ft.commit();

在MainActivity中。



我想在屏幕的底部放置一个TabLayout,我有这样的麻烦:


  1. 有可能从一个片段替换到另一个片段?我可以在哪里放置 fragmentTransaction

  2. 如果我想调用第三个片段(例如, )我可以为该标签使用相同的功能吗?

感谢您的回答

  //导航时项目由用户选择
@Override
public void onDrawerItemSelected(View view,int position){
displayView(position);
}

public void displayView(int position){
String title = getString(R.string.app_name);
switch(position){
case 0:
fragment = new UserProjectListFragment();
休息;
情况1:
fragment = new ContactUsFragment();
休息;
案例2:
fragment = new HelpFragment();
休息;
案例3:
//等等

break;

默认值:
break;

if(fragment!= null){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container_body,fragment).addToBackStack(fragBack);
fragmentTransaction.commit();
//设置工具栏标题
getSupportActionBar()。setTitle(title);


$ / code $ / pre

/ p对于你的问题是否可以取代一个片段到另一个?我可以在哪里放置fragmentTransaction?
yes
是这样的

 片段videoFragment = new VideoPlayerFragment(); 
FragmentTransaction transaction = getChildFragmentManager()。beginTransaction();
transaction.add(R.id.video_fragment,videoFragment).commit();


In my app I have navigation drawer with some fragments. When I choose in the drawer I do this code:

FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, f, tag);
ft.commit();

in the MainActivity.

Now in one fragment I want to put a TabLayout in the bottom of the screen and I have this troubles:

  1. is it possible to replace from one fragment to another? Where could I put fragmentTransaction?
  2. if I want to call a third fragment (for example a Send button in one of this tab fragments) I could use the same functions for the tab?

Thank you for the answers

解决方案

You can do like this...

//when navigation item is selected by user
    @Override
    public void onDrawerItemSelected(View view, int position) {
        displayView(position);
    }

    public void displayView(int position) {
        String title = getString(R.string.app_name);
        switch (position) {
            case 0:
                fragment = new UserProjectListFragment();                    
                break;
            case 1:
                fragment = new ContactUsFragment();
                break;
            case 2:
                fragment = new HelpFragment();
                break;
            case 3:
                //and so on

                break;

            default:
                break;
        }
        if (fragment != null) {
            FragmentManager fragmentManager = getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.container_body, fragment).addToBackStack("fragBack");
            fragmentTransaction.commit();
            // set the toolbar title
            getSupportActionBar().setTitle(title);
        }
    }

/and for your question is it possible to replace from one fragment to another? Where could I put fragmentTransaction? yes do like this

Fragment videoFragment = new VideoPlayerFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.video_fragment, videoFragment).commit();

这篇关于如何从一个片段传递到另一个片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆