繁体   English   中英

删除linearlayout内部的2个片段

[英]Remove 2 fragment inside linearlayout

我是Android编程的新手。 我试图在leave_content_container中显示2个片段

      Fragment fragment = getFragmentManager().findFragmentById(R.id.leave_content_container);
    getFragmentManager().beginTransaction().remove(fragment).commit();
    getFragmentManager().beginTransaction()
            .add(new ExpandableDataProviderFragmentLeave(), FRAGMENT_TAG_EXPANDABLE_DATA_PROVIDER_LEAVE)
            .commit();
    getFragmentManager().beginTransaction()
            .add(R.id.leave_content_container, new EmployeeLeaveAddExpandableFragment(), FRAGMENT_LIST_VIEW)
            .commit();
    getFragmentManager().beginTransaction()
            .add(new ExpandableDataProviderFragmentLeave1(), FRAGMENT_TAG_EXPANDABLE_DATA_PROVIDER_LEAVE_1)
            .commit();
    getFragmentManager().beginTransaction()
            .add(R.id.leave_content_container, new EmployeeLeaveAddExpandableFragment1(), FRAGMENT_LIST_VIEW)
            .commit();

完成后,我想删除所有这些片段,并用新的另一个片段替换它

  Fragment fragment = getFragmentManager().findFragmentById(R.id.leave_content_container);
            getFragmentManager().beginTransaction().remove(fragment).commit();
            getFragmentManager().beginTransaction().add(new ExpandableDraggableSwipeableDataProviderFragmentLeave(), FRAGMENT_TAG_DATA_PROVIDER).commit();
            getFragmentManager().beginTransaction()
                    .add(R.id.leave_content_container, new ExpandableDraggableSwipeableFragmentLeave(), FRAGMENT_LIST_VIEW)
                    .commit();

问题是,当我删除两个较旧的片段时,只有一个被删除。 如何删除leaves_content_container中的所有片段? 对不起,我的英语不好。

您可以通过执行以下操作轻松删除所有片段:

getFragmentManager().beginTransaction().remove(getFragmentManager().findFragmentById(R.id.leave_content_container)).commit();

它将删除容器中的碎片。

您可以通过其标签删除所需的片段:

    Fragment frag1 = getFragmentManager().findFragmentByTag(FRAGMENT_TAG_1);
    Fragment frag2 = getFragmentManager().findFragmentByTag(FRAGMENT_TAG_2);

    //P.S: multiple operations can be done in the same transaction
    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction
            .remove(frag1)
            .remove(frag2)
            .commit();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM