多个fragment切换问题请教,我点击button1可以显示,但点button2时显示不了,请大家帮我分析下。
fragmentM = getFragmentManager();
transation = fragmentM.beginTransaction();
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.search:
break;
case R.id.btnun:
detail = new DetailFragment();
transation.add(R.id.fragment_container, detail);
transation.addToBackStack(null);
transation.commit();
break;
case R.id.btnch:
detailt = new DetailtFragment();
transation.replace(R.id.fragment_container, detailt);
transation.addToBackStack(null);
transation.commit();
break;

解决方案 »

  1.   

    它们似乎是Fragment的不同类。
    你应该在onClick方法中把getFragmentManager.beginTransaction()去掉。
    这是我的理解,想要转换Fragment,你应该每次都获取一个新事务。还有在你的程序中每个按钮都创建了一个 DetailFragment,因此Fragment每次都相同。
      

  2.   

    它们似乎是Fragment的不同类。
    你应该在onClick方法中把getFragmentManager.beginTransaction()去掉。
    这是我的理解,想要转换Fragment,你应该每次都获取一个新事务。还有在你的程序中每个按钮都创建了一个 DetailFragment,因此Fragment每次都相同。
      

  3.   

    创建的是两个不同的fragment,一个DetailFragment, DetailtFragment
      

  4.   


    问下如何在onclick方法中去掉getFragmentManager.beginTransaction()去掉。
      

  5.   

    transation.replace(R.id.fragment_container, detailt);
    这个id是容器的ID,不是碎片本身的ID。你可以给你需要的替换的fragment外面写个布局,添加个ID,将这个ID传入你的replace方法中。