Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 碎片不是';t在残片PageRadapter中正确更换_Android_Android Fragments - Fatal编程技术网

Android 碎片不是';t在残片PageRadapter中正确更换

Android 碎片不是';t在残片PageRadapter中正确更换,android,android-fragments,Android,Android Fragments,我将开发一个android应用程序,使用FragmentPagerAdapter和ViewPager来使用FragmentPagerAdapter。我试图在片段中单击按钮来替换片段,但当我单击该按钮时,当前布局向上,下一个布局仍然位于该位置,即2个布局位于单个片段上,我不想要它 我正在使用这些步骤来替换,但没有正确地进行更改 FragmentTransaction transaction = getActivity() .getSupportFragmen

我将开发一个android应用程序,使用
FragmentPagerAdapter
ViewPager
来使用
FragmentPagerAdapter
。我试图在片段中单击按钮来替换片段,但当我单击该按钮时,当前布局向上,下一个布局仍然位于该位置,即2个布局位于单个片段上,我不想要它

我正在使用这些步骤来替换,但没有正确地进行更改

FragmentTransaction transaction = getActivity()
                    .getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.select_program_root, newFrag);
transaction.addToBackStack(null);
transaction.commit();
甚至我在水平
滚动视图中使用
TabHost
ViewPager
。我的应用程序一切正常。我只想替换片段
onClick
位于片段内部的按钮


提前感谢。

最后,我通过实现几行代码解决了这个问题

将此方法创建到您的
片段活动中

public void setCurrentItem(int item, boolean smoothScroll) {
    mViewPager.setCurrentItem(item, smoothScroll);
}
并将其称为片段的
onClick

((MainActivity) getActivity()).setCurrentItem(3, true);

您尝试过使用getChildFragmentManager()吗?没有。它是否也用于替换片段?如果是,请发布示例代码。getChildFragmentManager()返回一个私有FragmentManager,用于在该片段中放置和管理片段(Google文档)。使用它的方式与getSupportFragmentManager()相同<代码>FragmentTransaction事务=getActivity().getChildFragmentManager().beginTransaction();事务.替换(R.id.select\u program\u root,newFrag);transaction.addToBackStack(空);commit()getChildFragmentManager()
对于FragmentActivity是未定义的。