【发布时间】:2014-07-08 14:08:47
【问题描述】:
我正在尝试替换 Fragment1 中的 Fragment2。但是它带来了空的布局。我究竟做错了什么?
MainActivity.java
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = getSupportFragmentManager();
Fragment1 fragment = (Fragment1) fm.findFragmentById(R.id.fragment_content);
if (fragment == null) {
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.fragment_content, new Fragment1());
ft.commit();
}
}
}
Fragment1.java
public class Fragment1 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
Button btn = (Button) view.findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getFragmentManager();
if (fm != null) {
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, new Fragment2());
ft.commit();
}
}
});
return view;
}
}
Fragment2.java
public class Fragment2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment2, container, false);
TextView txt = (TextView) view.findViewById(R.id.textView1);
return super.onCreateView(inflater, container, savedInstanceState);
}
}
【问题讨论】:
-
ChildFragmentManager 是要走的路。