Android学习笔记--Fragment基础

温故而知新。

一.创建Fragment

  1. 为Fragment定义一个布局
  2. 自定义MyFragment 继承 Fragment(v4)
  3. 覆写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对象
  1. 先获取FragmentManager(getSupportFragmentManager)
  2. 通过FragmentManager中findFragmentById

3.在Activity中获取Fragment中的某个控件
  1. 先获取Fragment对象
  2. 通过对象获取getView()
  3. findViewById()

三.Fragment的生命周期 (与Activity较为相似)    

  1. onAttatch   绑定到Activity
  2. onCreate     创建fragment
  3. onCreateView      创建fragment的布局
  4. onActivityCreated     activity创建完成后
  5. onStart                 
  6. onResume
  7. onPause
  8. onStop
  9. onDestoryView         销毁fragment的View对象
  10. onDestory          fragment销毁了
  11. onDetach            与Activity解绑

四.Fragment之间的通信

  1. 先在activity_main布局文件中进行设置,创建两个FragmeLayout
  2. 分别创建各自的xml布局
  3. 先添加内容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);
    }
  1. 添加选项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]);
           }
       });
    }


此文更多的是为了巩固自己已学知识,如有不正确的地方,欢迎指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值