work_weipa_viewpager

来源:互联网 发布:录音机软件 手机 编辑:程序博客网 时间:2024/05/17 00:10

问题3:如何实现viewpager中点击其中一个fragment上的按钮,替换成另一个与viewpager不相关且自定义的fragment?

回答:在MainActivity中写一个方法,是的view层能找到不相关的fragment,在点击事件中使用getParentFragment()来获取对象

例子:

if ("login".equals(tag)) {fragmentTag = fragmentManager.findFragmentByTag("register");if (fragmentTag != null) {RegisterFragment fragment = new RegisterFragment();fragmentManager.beginTransaction().remove(fragmentTag).commit();fragmentManager.beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).add(R.id.main_content, fragment, "register").commit();this.replaceMain("register");} else {// 获取login对fragment对象fragmentTag = fragmentManager.findFragmentByTag(tag);}}
tv_reg.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {RegisterFragment fragment = new RegisterFragment();Bundle bundle = new Bundle();Fragment yfragment = getParentFragment().getFragmentManager().findFragmentByTag("register");// 判断是否为nullif (yfragment != null) {// 移除getParentFragment().getFragmentManager().beginTransaction().remove(yfragment).commit();}// 添加getParentFragment().getFragmentManager().beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).add(R.id.main_content, fragment, "register").commit();// 显示MainActivity activity = (MainActivity) getActivity();activity.replaceMain("register");}});


0 0
原创粉丝点击