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

CEN*_*EDE 14 android transactions fragment

这是声明:

FragmentManager fr = getFragmentManager();
FragmentTransaction ft = fr.beginTransaction();
Fragment myFragment = new defaultFragment();
ft.add(R.id.fragment, myFragment);
ft.commit();
Run Code Online (Sandbox Code Playgroud)

这是onClick()方法:

public void startFragment(View v){
    newFragment = new nextFragment();
    execute();
}
Run Code Online (Sandbox Code Playgroud)

执行方法:

public void execute() {
    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    transaction.add(R.id.fragment, newFragment);
    transaction.addToBackStack(null);
    transaction.commit();
}
Run Code Online (Sandbox Code Playgroud)

我不能解决问题但是当我点击触发该startFragment(View v)方法的按钮时,没有任何反应,片段不会被我想要在堆栈上添加的片段替换.我认为这个问题与这个问题有关,transaction.add(R.id.fragment, newFragment);请帮助谢谢:)

Raj*_*tth 54

尝试添加片段FrameLayout代替.我无法将其添加到LinearLayout,但我将其更改为FrameLayout有效.

  • 喔,哈哈!非常感谢!多么愚蠢..当然,LinearLayout会在前一个片段的下一个或下面添加视图.FrameLayout将把它放在上一个的TOP上.所以它就在那里,但不可见,因为第一个片段填满了屏幕(使用MATCH_PARENT) (12认同)