这是声明:
FragmentManager fr = getFragmentManager();
FragmentTransaction ft = fr.beginTransaction();
Fragment myFragment = new defaultFragment();
ft.add(R.id.fragment, myFragment);
ft.commit();
这是onClick()
方法:
public void startFragment(View v){
newFragment = new nextFragment();
execute();
}
执行方法:
public void execute() {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.add(R.id.fragment, newFragment);
transaction.addToBackStack(null);
transaction.commit();
}
我不能解决问题,但是当我点击触发startFragment(View v)
方法的按钮时,没有任何反应,片段不会被我想要添加到堆栈上的片段替换。我认为这个问题与此行transaction.add(R.id.fragment, newFragment);
有关,请帮助,谢谢:)
答案 0 :(得分:52)
尝试将片段添加到FrameLayout
。我无法将其添加到LinearLayout
,但我将其更改为FrameLayout
并且有效。