android_fragment的介绍



  ActivityGroup废弃,使用Fragment和FragmentManager替代;   
  Fragment主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。通过将activity的布局分散到fragment中, 你可以在运行时修改activity的外观,并在由activity管理的back stack中保存那些变化。例如,在一个activity中选择一篇文章并且阅读。
  fragment在你的应用中应当是一个模块化和可重用的组件。例如,在屏幕尺寸足够大时,在一个activity中包含多个fragment;屏幕较小时,会启动另一个单独的,使用不同fragment的activity。
  fragment生命周期:onAttach-> onCreate-> onCreateView-> onActivityCreated-> onViewStateRestored-> onStart-> onResume-> ****-> onPause-> onStop-> onDestroyView-> onDestroy-> onDetach
  fragment与activity通讯:fragment中getActivity方法;activity中getFragmentManager方法。
  activity中响应fragment的事件:面向接口编程(观察者模式),activity中实现接口,Fragment中调用相应的接口方法。
  android.app.Fragment兼容的最低版本是android:minSdkVersion="11",即不兼容3.0的应用。可以使用<fragment>标签的,这点很重要,如果是用android.support.v4.app.Fragment的话,是不能是用<fragment>标签的,会抛出android.view.InflateException: Binary XML file line #7: Error inflating class fragment异常;android.support.v4.app.Fragment:可以兼容到1.6的版本,不能使用<fragment>标签,需要在程序中通过add或者replace的方式添加,同时还需要android-support-v4.jar




   v4的   Fragment implements ComponentCallbacks, OnCreateContextMenuListener{   ******   }



  FragmentActivity是继承了Activity,里面变量有:

        final FragmentManagerImpl mFragments = ***;   //继承了FragmentManager。
        final FragmentContainer mContainer=***;   //实现了一个接口,主要是findViewById方法。
        HashMap<String, LoaderManagerImpl> mAllLoaderManagers;
        LoaderManagerImpl mLoaderManager;

                  类FragmentManagerImpl extends FragmentManager {  ****   }
                  类LoaderManagerImpl extends LoaderManager {  ****  }


  ActivityGroup是继承了Activity,里面主要变量有:

        LocalActivityManager mLocalActivityManager;   // 它使用了主线程对象mActivityThread来装载指定的Activity(装载,不是启动)。LocalActivityManager的startActivity就是利用主线程mActivityThread去装载指定Activity。


  TabActivity是继承了ActivityGroup,里面主要变量有:
        TabHost mTabHost;  //切换按钮。

                 类TabHost extends FrameLayout implements ViewTreeObserver.OnTouchModeChangeListener { ****  }

                            类FrameLayout extends ViewGroup {   ****  }

                                         类ViewGroup extends View implements ViewParent, ViewManager {     ****   }

                                                       类View implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource {   *****    }



   类ViewSwitcher extends ViewAnimator { **** }
       类ViewAnimator extends FrameLayout {  **** }
             类FrameLayout extends ViewGroup { **** }
                  类ViewGroup extends View implements ViewParent, ViewManager { **** }
                       接口ViewManager主要方法有addView,updateViewLayout,removeView。



   个人总结:Fragment切换,轻量,UI的转换。     TabActivity属于Activity的切换,涉及到framework的消息传递。



             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值