猿问

如何将getChildFragmentManager与扩展Dialog片段的类一起使用

我正在使用TabLayout播放片段。一旦我从TabLayout片段移动到下一个片段,然后按返回键。默认的TabLayout片段上的内容消失了。我在帖子中找到了可能的解决方案。以下是TabLayout的代码。


public class IndividualCollectionSheetFragment extends MifosBaseFragment {


private TabLayout tabLayout;

private ViewPager viewPager;

private View rootView;


public IndividualCollectionSheetFragment() {

}


public static IndividualCollectionSheetFragment newInstance() {

    Bundle args = new Bundle();

    IndividualCollectionSheetFragment fragment = new IndividualCollectionSheetFragment();

    fragment.setArguments(args);

    return fragment;

}


@Override

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

}


@Nullable

@Override

public View onCreateView(LayoutInflater inflater,

                         @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    rootView = inflater.inflate(R.layout.fragment_individual_recycler, container, false);

    ButterKnife.bind(this, rootView);

    setToolbarTitle(getStringMessage(R.string.individual_collection_sheet));

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

    setupViewPager(viewPager);


    tabLayout = rootView.findViewById(R.id.tabs);

    tabLayout.setupWithViewPager(viewPager);

    return rootView;

}


帖子中的解决方案建议使用getChildFramentManager而不是getSupportFragmentManager。我一改成getChildFragmentManager。我得到了错误。


        java.lang.IllegalStateException: Fragment CollectionSheetDialogFragment{572dd42 #0 Identifier Dialog Fragment} declared target fragment NewIndividualCollectionSheetFragment{45e8153 #0 id=0x7f090361 android:switcher:2131297121:0} that does not belong to this FragmentManager!

这可能是由于扩展了DialogFragment的CollectionSheetDialogFragment类造成的,并且与所使用的不同片段管理器之间必须存在不一致之处。


繁星点点滴滴
浏览 256回答 2
2回答

婷婷同学_

也许这项工作:替换 getFragmentManager() 而不是getChildFragmentManager()
随时随地看视频慕课网APP

相关分类

Java
我要回答