Fragment切换时,报错the specifid child already has a parent.

 这是我的activiy代码
public class MainActivity extends FragmentActivity {
	private MenuDrawer mDrawer;
	private LayoutInflater mInflater;
	private CircleImageView circleImageView;
	private View menuView;
	
	
	@ViewInject(R.id.frame_layout)
	FrameLayout frameLayout;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		ViewUtils.inject(this);
		
		Fragment fragment = (Fragment) fragmentAdapter.instantiateItem(
				frameLayout, 100);
		fragmentAdapter.setPrimaryItem(frameLayout, 0, fragment);
		
		fragmentAdapter.finishUpdate(frameLayout);
		
		//this is set MenuDrawer attr
		setMenuDrawer();
	}
	
	private void setMenuDrawer() {
		mDrawer = MenuDrawer.attach(this, MenuDrawer.Type.OVERLAY,
				Position.LEFT, MenuDrawer.MENU_DRAG_WINDOW);
		mDrawer.setSlideDrawable(R.drawable.ic_launcher);
		mDrawer.setupUpIndicator(this);
		mDrawer.setDrawerIndicatorEnabled(true);
		mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View content = mInflater.inflate(R.layout.activity_main, null);
		menuView = mInflater.inflate(R.layout.menu_drawer, null);
		mDrawer.setMenuView(menuView);
		mDrawer.setContentView(content);
		circleImageView = (CircleImageView) menuView.findViewById(R.id.circle_img);		
		circleImageView.setImageResource(R.drawable.ic_launcher);
		setMenuViewListener();
	}
	
	
	//this is set MenuView listener
	private void setMenuViewListener (){
	TextView txt =(TextView) menuView.findViewById(R.id.txt_syllabus);
		txt.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Fragment fragment = (Fragment) fragmentAdapter.instantiateItem(
						frameLayout, 100);
				fragmentAdapter.setPrimaryItem(frameLayout, 0, fragment);
				fragmentAdapter.finishUpdate(frameLayout);
			}
		});
	}
	
	private FragmentStatePagerAdapter fragmentAdapter = new FragmentStatePagerAdapter(
			getSupportFragmentManager()) {
		@Override
		public Fragment getItem(int index) {
				return new MainFragment();
		}
		@Override
		public int getCount() {
			return 1;
		}
	};
}
下面是我Fragment代码:


import com.stzt.liveassistant.R;


import android.app.Fragment;
import android.os.Bundle;
import android.text.style.SuperscriptSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class MainFragment extends BaseFragment{
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>private View rootView; 


<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public View onCreateView(LayoutInflater inflater, ViewGroup container,
<span style="white-space:pre">			</span>Bundle savedInstanceState) {
<span style="white-space:pre">		</span>rootView = inflater.inflate(R.layout.main_fragment, <span style="color:#ff0000;">container</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span>
<span style="white-space:pre">		</span>return rootView;
<span style="white-space:pre">	</span>}


}
报错的意思是fragment已经有了父亲不能在次添加,查找了别人成功切换的代码后发现应该在Fragment解析的方法中写null,而不是container。新手要多注意一下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值