静态加载(直接在布局文件中添加fragment标签,指定name属性):
<fragment
android:id="@+id/b_fragment"
android:name="com.example.B_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
当然了 需要创建一个类继承自Fragment并从写onCreateView方法返回该fragment视图:
public class B_fragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.b_fragment, container,false);
return v;
}
}
动态加载
Fragment c = new C_fragment();
FragmentManager fm = getFragmentManager();
// 开启Fragment事务
FragmentTransaction transaction = fm.beginTransaction();
transaction.replace(R.id.b_content,c);
// 事务提交
transaction.commit();
注:
- Fragment常用的三个类:
android.app.Fragment 主要用于定义Fragment
android.app.FragmentManager 主要用于在Activity中操作Fragment
android.app.FragmentTransaction 保证一些列Fragment操作的原子性
- FragmentTransaction
FragmentTransaction transaction = fm.benginTransatcion();//开启一个事务
transaction.add()
往Activity中添加一个Fragment
transaction.remove()
从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈(回退栈后面会详细说),这个Fragment实例将会被销毁。
transaction.replace()
使用另一个Fragment替换当前的,实际上就是remove()然后add()的合体~
transaction.hide()
隐藏当前的Fragment,仅仅是设为不可见,并不会销毁
transaction.show()
显示之前隐藏的Fragment