如何从一个片段传递到另一个片段 [英] How to pass from one fragment to another
本文介绍了如何从一个片段传递到另一个片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的应用程序中,我有一些带有碎片的导航抽屉。当我在抽屉中选择代码时:
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container,f,tag);
ft.commit();
在MainActivity中。
我想在屏幕的底部放置一个TabLayout,我有这样的麻烦:
- 有可能
从一个片段替换
到另一个片段?我可以在哪里放置fragmentTransaction
? - 如果我想调用第三个片段(例如, )我可以为该标签使用相同的功能吗?
感谢您的回答
//导航时项目由用户选择
@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:
- is it possible to
replace
from one fragment to another? Where could I put fragmentTransaction
?
- 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屋!
查看全文