您的位置:首页 > 其它

Duplicate id, tag null, or parent id 0x0 with another fragment 解决方案

2015-12-25 17:59 344 查看
转:http://blog.csdn.net/hack8/article/details/25432503

在Fragment中如果内嵌了Fragment,那么在多次点击后内嵌的Fragment会遭成上述的问题Duplicate id  tag null or parent id 0x0,因此我们需要在Fragment的OnDestroyView方法中销毁内嵌的Fragment,这样就可以解决上述的问题,具体代码如下:

 

[java] view
plaincopyprint?





public class CopyOfSampleTitlesTriangle extends CopyOfBaseSampleFragment {  

   

 private UserProfileFragment userProfileFragment;  

   

 @Override  

  

public void onDestroyView()  

 {  

  // TODO Auto-generated method stub  

  super.onDestroyView();  

  

 //内嵌的Fragment UserProfileFragment   

  UserProfileFragment userProfileFragment1 =(UserProfileFragment)getFragmentManager().findFragmentById(R.id.fr_user_profile_user_data_fragment);  

  if(userProfileFragment1 !=null ){  

   getFragmentManager().beginTransaction().remove(userProfileFragment1).commit();  

  }  

  

  

@Override  

 public View onCreateView(LayoutInflater inflater, ViewGroup container,  

   Bundle savedInstanceState)  

 {  

  // TODO Auto-generated method stub  

  //return super.onCreateView(inflater, container, savedInstanceState);  

  View view = inflater.inflate(R.layout.fr_user_profile, null);  

  mAdapter = new TestFragmentAdapter(getChildFragmentManager());  

  

        mPager = (ViewPager)view.findViewById(R.id.pager);  

        mPager.setAdapter(mAdapter);  

  

        TitlePageIndicator indicator = (TitlePageIndicator)view.findViewById(R.id.viewpager_indicator);  

        indicator.setViewPager(mPager);  

        indicator.setFooterIndicatorStyle(IndicatorStyle.Triangle);  

        mIndicator = indicator;  

          

        final float density = getResources().getDisplayMetrics().density;  

        //indicator.setBackgroundColor(0x18FF0000);  

          

        indicator.setFooterColor(Color.WHITE);  

        indicator.setFooterLineHeight(1 * density); //1dp  

        indicator.setFooterIndicatorHeight(3 * density); //3dp  

        //indicator.setFooterIndicatorStyle(IndicatorStyle.Underline);  

        //indicator.setTextColor(0xAA000000);  

        //indicator.setSelectedColor(0xFF000000);  

        indicator.setSelectedBold(true);  

          

        userProfileFragment =(UserProfileFragment)getFragmentManager().findFragmentById(R.id.fr_user_profile_user_data_fragment);  

          

        //userProfileFragment =(UserProfileFragment)getChildFragmentManager().findFragmentById(R.id.fr_user_profile_user_data_fragment);  

        User user=new User();  

        user.fullName="test";  

        user.description="test description";  

        user.email="test@gmail.com";  

        user.isFollowing=true;  

        user.shortName="test";  

         

        userProfileFragment.setUser(user);  

         

    

  return view;  

 }  

  

  

 }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: