簡體   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