安卓Fragment 碎片!!!

    xiaoxiao2023-03-25  5

    一, Fragment是什么?  >Android 3.0以后出现的  Api11 以上  Activity的组成部分  Fragment(小的Activity)  Fragment可以显示 UI内容  可以和用户进行交互

     Fragment的主要作用:提高代码的重用性 和用户体验  可以对Activity组件 进行分组和模块化的管理

     Fragment 有自己的生命周期 可以接受和处理用户的事件   可以在Activity中   添加,替换和移除 Fragment

     注意:1,Fragment必须依附Activity              2,一个Activity可以包含多个Fragment,一个Fragment可以       被多个Activity使用

    二, 如何创建Fragment  >1,创建一个类继承Fragment  >2,得到Fragment生命周期方法  onCreateView() (展示UI)

    三, Fragment 的显示方式  >1,静态展示Fragmeng(在布局中直接添加Fragment)   >1,在布局中<fragment>标签   >2,id  Fragmeng的唯一标识   >3,name  添加的是那个Fragmeng

     >2,动态添加Fragment(在布局中添加一个容器,动态代码将Fragmeng添加到容器)   >1,在布局中添加容器   >2,在逻辑代码中   获取FragmengManage   >3,通过Fragmeng的事务   >4,Fragmeng的事务  将Fragmeng添加相应的容器   >5,Fragment的事务  提交

    四,Activity向Fragment传值

     >Activity:(setArguments(bundle))   //传值   ActivityToFragment   Bundle bundle = new Bundle();   bundle.putString("msg", "今天开会");   //传值   myFragment.setArguments(bundle);

     >Fragment:(getArguments()   //获取传递过来的值   Bundle bundle = getArguments();   //获取值   String msg = bundle.getString("msg");

    五, Fragment 向Activity传值 (接口回调)  >1,创建一个回调接口  >2,在Activity中实例化回调接口  >3,将实例化的接口传给Fragment  (getActivity)  >4,在Fagment中  将值传递给Activity

    六, Fragment向Fragment传值  >1,setArgument()   //传值   MyFragment2 myFragment2 = MyFragment2.newInstance(bundle);      MyFragment2 myFragment2 = new MyFragment2();   myFragment2.setArguments(bundle);

     >2,在Fragment1中找到Fragment2对象  通过对象调方法   通过Fragment的id  获取Fragment2的对象   Fragment2 fragment2 = (Fragment2) getFragmentManager().findFragmentById(R.id.rightfragment);   fragment2.setTextValues(msg);    >3,在Fragment1中找到Fragment2中的控件   TextView tv = (TextView) getFragmentManager().findFragmentById(R.id.rightfragment).getView().findViewById(R.id.tv_show);   TextView tv = (TextView) getActivity().findViewById(R.id.tv_show);   tv.setText(msg); 七, Fragment的生命周期    11个生命周期方法

    第一次打开app 09-08 06:05:55.590: E/MainActivity(3786): ==onCreate== 09-08 06:05:55.590: E/MyFragment(3786): ==onAttach== 09-08 06:05:55.590: E/MyFragment(3786): ==onCreate== 09-08 06:05:55.600: E/MyFragment(3786): ==onCreateView== 09-08 06:05:55.600: E/MyFragment(3786): ==onActivityCreated== 09-08 06:05:55.600: E/MainActivity(3786): ==onStart== 09-08 06:05:55.600: E/MyFragment(3786): ==onStart== 09-08 06:05:55.600: E/MainActivity(3786): ==onResume== 09-08 06:05:55.610: E/MyFragment(3786): ==onResume==

    按Home键时 09-08 06:07:08.211: E/MyFragment(3786): ==onPause== 09-08 06:07:08.211: E/MainActivity(3786): ==onPause== 09-08 06:07:10.090: E/MyFragment(3786): ==onStop== 09-08 06:07:10.090: E/MainActivity(3786): ==onStop==

    重新返回到界面

    09-08 06:08:11.391: E/MainActivity(3786): ==onRestart== 09-08 06:08:11.391: E/MainActivity(3786): ==onStart== 09-08 06:08:11.391: E/MyFragment(3786): ==onStart== 09-08 06:08:11.391: E/MainActivity(3786): ==onResume== 09-08 06:08:11.411: E/MyFragment(3786): ==onResume==

    按返回键时 09-08 06:09:12.440: E/MyFragment(3786): ==onPause== 09-08 06:09:12.440: E/MainActivity(3786): ==onPause== 09-08 06:09:14.110: E/MyFragment(3786): ==onStop== 09-08 06:09:14.110: E/MainActivity(3786): ==onStop== 09-08 06:09:14.110: E/MyFragment(3786): ==onDestroyView== 09-08 06:09:14.110: E/MyFragment(3786): ==onDestroy== 09-08 06:09:14.110: E/MyFragment(3786): ==onDetach== 09-08 06:09:14.110: E/MainActivity(3786): ==onDestroy==

     

    八, V4包中的Fragment使用

     >V4支持Android1.6    

     使用;    * 1,创建一个类  继承V4包的Fragment    * 2,修改Activity 变成FragmentActivity    * 3,获取管理者对象   V4 getSupportFragmentManager()  获取事务 V4

     note:用V4的Fragment  全部改成V4的   用app包的  全部用app包

    九, listFragment的使用(了解)  >ListFragment  里面封装了  ListVIew  : id为: android:id="@id/android:list"    >设置数据的方法     点击监听的方法

    十,回退栈

    .addToBackStack(null)//回退栈     参数:标记   如果没有标记   null .commit()

     

    转载请注明原文地址: https://ju.6miu.com/read-1204013.html
    最新回复(0)