调用add()方法时不显示片段

时间:2013-11-18 12:20:16

标签: android transactions fragment

这是声明:

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);有关,请帮助,谢谢:)

1 个答案:

答案 0 :(得分:52)

尝试将片段添加到FrameLayout。我无法将其添加到LinearLayout,但我将其更改为FrameLayout并且有效。