一、Fragment理解(是什么) 《1》Fragment之与我理解,就是一枚小Activity,他依赖于Activity而存在,一个Activity中可以包括一个或多个Fragment是Activity的片段。Fragment的生命周期依赖于Activity的生命周期。 二、Fragment的实战(怎么用) 《1》Fragment的生成。 Fragment竟然是Activity的片段,“麻雀虽小,五脏俱全”,Fragment的生成主要是依靠XML产生布局(布局与Activity无异),建立继承Fragment父类的类,并重写父类的 方法,返回View就是Fragment得到的View控件。 public class FragmentTop extends Fragment implements OnClickListener {
Activity parentActivity = super.getActivity();
@Override
public void onAttach(Activity activity) {
// fragment已经附属到Activity,可接受次Activity
super.onAttach(activity);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// 构建Framgmet界面,返回。
View view = inflater.inflate(R.layout.activity_fragment_top, null);
return view;
}
《3》Fragment的使用
(1)获得Fragment。
调用时候有三种方式第一:直接new获得:new FragmentTop ()。第二种,Fragment.instantiate(context, fname);说明,第一参数context是Frament所依赖的上下文环境,也就是他所依赖的Activity。第二个参数是类名(利用反射得到的类名)这样就创建好Fragment了;第三种:在布局xml时已经在Fragment那么属性填写完整的实现加载他的Fragment类,这样直接可以用通过ID或tag的方式用Inflate转化成Fragment;(此方法有局限性)
(2)把Fragment放到哪去?放上之后如何换成别的Fragment?如何删掉Fragment?
从Fragement说依赖的Activity中获得FragmentManager。通过他里面的方法便可以实现放置删除修改Fragment。这些方法的执行都用到
FragmentManager里面的事务
FragmentCenter fragmentcenter = new FragmentCenter();//获得fragemtn
fm = getFragmentManager();//获得Fragement
//使用事务操作Fragement,其中R.id.content_layout为Fragment容器
fm.beginTransaction().add(R.id.content_layout, fragmentcenter, "center1").commit();
(3)获得Fragement中的控件,并进行操作 TextView tv = (TextView) center.getView().findViewById(R.id.center_text); tv.setText(v.getTextDirection() + "");