这是我的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。新手要多注意一下