Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.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
Java 重新加载片段,片段不调用onCreateView_Java_Android_Android Fragments_Android Viewpager_Fragment - Fatal编程技术网

Java 重新加载片段,片段不调用onCreateView

Java 重新加载片段,片段不调用onCreateView,java,android,android-fragments,android-viewpager,fragment,Java,Android,Android Fragments,Android Viewpager,Fragment,我有一个片段(C)和一个带有2个片段(a/B)的ViewPager(适配器)。 当我调用片段一次时,它们加载良好。 但是当我在第二次调用片段(C)时,片段A和B不调用视图onCreateView方法,并且没有加载 片段C由Fragmetnmanger调用: FragmentC fragment = new FragmentC(); getActivity().getSupportFragmentManager().beginTransaction().replace(R.

我有一个片段(C)和一个带有2个片段(a/B)的ViewPager(适配器)。 当我调用片段一次时,它们加载良好。 但是当我在第二次调用片段(C)时,片段A和B不调用视图onCreateView方法,并且没有加载

片段C由Fragmetnmanger调用:

FragmentC fragment = new FragmentC();
            getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.adressenmdf_detail_container, fragment).addToBackStack(null).commit();
片段C

 public BelegeDetails(){

}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.activity_belege_details, container, false);
    //TODO Actionbar noch anpassen
    //getSupportActionBar().setDisplayHomeAsUpEnabled(true);



    viewPager = (ViewPager) rootView.findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) rootView.findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
    setupTabIcons(); 
片段C中的设置

    private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(this.getFragmentManager());

    adapter.addFragment(new BelegeDetails1(),"Details" );
    adapter.addFragment(new BelegeDetailsPos(), "Positionen");
    viewPager.setAdapter(adapter);
}
private void setupTabIcons() {
    tabLayout.getTabAt(1).setIcon(R.drawable.ic_belege);
}

class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    public void addFragment(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);

    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }
}
尝试更改此选项:

ViewPagerAdapter adapter = new ViewPagerAdapter(this.getFragmentManager());
与:

在嵌套片段时,需要使用
getChildFragmentManager()
而不是
getFragmentManager()

尝试更改此选项:

ViewPagerAdapter adapter = new ViewPagerAdapter(this.getFragmentManager());
与:

在嵌套片段时,需要使用
getChildFragmentManager()
而不是
getFragmentManager()

ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());