温故而知新。
一.创建Fragment
- 为Fragment定义一个布局
- 自定义MyFragment 继承 Fragment(v4)
- 覆写onCreateView 返回一个View对象作为当前Fragment的布局。第一次绘制用户界面的时候,onCreateView方法()会被调用。 (此方法必须返回一个作为Fragment布局的跟view,如果Fragment不提供UI,可返回null)
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
//我们一般使用打气筒生成一个View对象
View view = inflater.infalte(R.layout.xxxx,null);
return view;
}
二.将Frament添加到Activity中
如果想要在Activity中嵌入Fragment,那么Activity必须继承FragmentActivity类
1.在Activity的布局文件中声明fragment标签
<fragment
android:id="@+id/fragmentA1"
android:name="com.example.zlffragment.MyFargment"
android:"layout_width="match_parent"
android:"layout_height="wrap_content"
/>
<<<<当系统创建这个activity layout的时候,它实例化每一个在layout中指定的fragment,然后调用onCreateView方法获取每一个fragment的layout,再通过它返回的View直接插入到<fragment>元素所在的地方>>>>
2.在Activity中获取fragment对象
- 先获取FragmentManager(getSupportFragmentManager)
- 通过FragmentManager中findFragmentById
3.在Activity中获取Fragment中的某个控件
- 先获取Fragment对象
- 通过对象获取getView()
- findViewById()
三.Fragment的生命周期 (与Activity较为相似)
- onAttatch 绑定到Activity
- onCreate 创建fragment
- onCreateView 创建fragment的布局
- onActivityCreated activity创建完成后
- onStart
- onResume
- onPause
- onStop
- onDestoryView 销毁fragment的View对象
- onDestory fragment销毁了
- onDetach 与Activity解绑
四.Fragment之间的通信
- 先在activity_main布局文件中进行设置,创建两个FragmeLayout
- 分别创建各自的xml布局
- 先添加内容fragment中的代码逻辑
public View onCreateView( LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R .layout .youfragment, null);
textView = (TextView )mView.findViewById(R .id .tv_title);
imageView = (ImageView )mView.findViewById(R .id .iv);
return mView;
}
public void setTAI( String title,int resId){
textView.setText(title);
imageView.setImageResource(resId);
}
- 添加选项fragment中的代码逻辑
public View onCreateView( LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
listView = ( ListView ) inflater.inflate(R .layout .zuofragment,null );
intilistView();
return listView;
}
private void intilistView() {
final String [] items = { "条目一", "条目二" ,"条目三" ,"条目四" ,"条目五" };
final int [] resIds = {R .drawable.1, R. drawable.2, R. drawable.3,R .drawable.4, R.drawable.5};
listView.setAdapter( new ArrayAdapter<String >(getActivity(),android.R .layout .simple_list_item_1, items));
listView.setOnItemClickListener( new OnItemClickListener() {
@Override
public void onItemClick(AdapterView <?> parent, View view,
int position, long id) {
FragmentYou fragment = (FragmentYou ) getActivity().getSupportFragmentManager().findFragmentByTag("FragmentYou" );
fragment.setTAI(items[position], resIds[position]);
}
});
}
此文更多的是为了巩固自己已学知识,如有不正确的地方,欢迎指出。