删除片段android

时间:2014-06-11 06:29:54

标签: android google-maps android-fragments maps

因此,在一个父片段MAPSLIST中有两个片段。 MAPS是我的地图片段,LIST是正常的列表视图。我有两个按钮MAPS_BUTTONLIST_BUTTON。加载主片段时,默认情况下会加载MAPS片段,但是当我单击列表按钮时,LIST片段将被加载到MAPS所在的位置。我的问题是,每当我在LIST片段上,并且我点击MAPS_BUTTON LIST片段没有删除,它总是停留在那里,因此我看不到地图片段。< / p>

任何人都可以帮助我吗?!

以下是两个按钮的onclick代码:

    map_button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            lf= new ListFragment(bean, imgLoader);
            FragmentTransaction ft = getFragmentManager()
                    .beginTransaction();
            ft.remove(lf);
            //ft.addToBackStack("LIST");
            ft.commit();

            getFragmentManager().popBackStack();

            Log.e("POPBACKSTACK: ", "POPBACKSTACK: "+getFragmentManager().getBackStackEntryCount());

        }
    });


    final Button list_view_button = (Button) rootView
            .findViewById(R.id.list_view_button);
    list_view_button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            map_button.setClickable(true);

            Fragment mf = (MapFragment) getFragmentManager().findFragmentById(
                    R.id.map);
            FragmentTransaction ftm = getFragmentManager().beginTransaction();
            ftm.remove(mf);
            ftm.addToBackStack("MAPS");
            ftm.commit();

            lf = new ListFragment(bean, imgLoader);
            FragmentTransaction ft = getFragmentManager()
                    .beginTransaction();
            ft.replace(R.id.maps_list_container, lf);
            ft.commit();
        }
    });

1 个答案:

答案 0 :(得分:0)

使用此代码:

public void removeCurrentFragment() {
    FragmentTransaction transaction = getSupportFragmentManager()
            .beginTransaction();

    Fragment currentFrag = getSupportFragmentManager().findFragmentById(
            R.id.fragment_container);

    setFragName("NONE");

    if (currentFrag != null) {
        setFragName(currentFrag.getClass().getSimpleName());
    }

    if (currentFrag != null) {
        transaction.remove(currentFrag);
    }

    transaction.commit();

}