我使用改变片段视图的一帧,我遇到的问题是当我放置add而不是替换新视图放在现有的
上我需要的是它必须替换现有的并放置新的
由于我必须在按下后退按钮时重复使用当前视图,因此无法使用替换
Fragment fragment = null;
fragment = new DetailFragment2();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.add(R.id.frame_container2, fragment)
.addToBackStack(null).commit();
答案 0 :(得分:1)
如果您不使用支持库(这是您的实际情况),请使用以下代码:
final FragmentTransaction ft =
getFragmentManager().beginTransaction();
ft.replace(R.id.frame_container2, new DetailFragment2());
ft.commit();
如果有一天您决定使用支持库,那么请改用它(只需将getFragmentManager()
替换为getSupportFragmentManager()
):
final FragmentTransaction ft =
getSupportFragmentManager().beginTransaction();
ft.replace(R.id.frame_container2, new DetailFragment2());
ft.commit();
答案 1 :(得分:0)
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction;
transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.frame_container2,fragment.newIstance());
transaction.addToBackStack(null);
transaction.commit();
你需要在Fragment类中创建newIstance:
public static fragment newIstance(){
fragment frag= new fragment();
return frag;
}