Android之Fragment

来源:互联网 发布:表格公式查找相同数据 编辑:程序博客网 时间:2024/06/06 00:32

Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套app,然后拷贝一份,修改布局以适应什么超级大屏的。难道无法做到一个app可以同时适应手机和平板吗?答案是,当然有,那就是Fragment.Fragment出现的初衷就是为了解决这样的问题。
你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成。
学习Fragment就需要知道它的生命周期,静态,动态使用Fragment,
生命周期:
onAttach()–onCreate()–onCreateView()–onActivityCreated()–onStart()–onResume()–onPause()–onStop()–onDestroyView()–onDestroy()–onDetach()
onAttach(Activity)
当Fragment与Activity发生关联时调用。
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法返回时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被取消时调用
注意:除了onCreateView,其他的所有方法如果你重写了,必须调用父类对于该方法的实现。
一、静态的使用Fragment:
1、继承Fragment,重写onCreateView决定Fragemnt的布局
2、在Activity中声明此Fragment,就当和普通的View一样
二、动态的使用Fragment
动态使用最好的例子就是微信界面
贴一些主要代码:
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
mWeixin = new ContentFragment();
transaction.replace(R.id.id_content, mWeixin);
transaction.commit();
// 开启Fragment事务
FragmentTransaction transaction = fm.beginTransaction();
替换代码:
transaction.replace(R.id.id_content, mFriend);

FragmentManager对Fragment进行了动态的加载

原创粉丝点击