因此,在一个父片段MAPS
和LIST
中有两个片段。 MAPS
是我的地图片段,LIST
是正常的列表视图。我有两个按钮MAPS_BUTTON
和LIST_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();
}
});
答案 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();
}