• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
<*梦之缘*>
博客园    首页    新随笔    联系   管理    订阅  订阅

android Fragment浅谈

对于Fragment我们可以将它认为是activity中的模块,一个activity可以添加多个Fragment,而这些Fragment有自己的布局,有自己的生命周期,单独处理自己的输入,在activity运行时可以加载或者移除Fragment模块。

一:在activity中添加Fragment存在两种方式:

  静态添加:

 <fragment

        android:id="@+id/left_fragment"  

        android:name="com.sunflower.LeftFragment"  

        android:layout_width="match_parent"  

       android:layout_height="fill_parent"  

        android:layout_weight="3" />  

  

    <fragment  

        android:id="@+id/right_fragment"  

        android:name="com.sunflower.RightFragment"  

        android:layout_width="match_parent"  

         android:layout_height="fill_parent"  

        android:layout_weight="1" />  

 动态添加:    

FragmentManager manager = this.getSupportFragmentManager();

FragmentTransaction transaction = manager.beginTransaction();

RightFragment rightFragment = new RightFragment();
LeftFragment leftFragment = new LeftFragment();
transaction.add(R.id.left_layout, leftFragment, "leftFragment");
transaction.add(R.id.right_layout, rightFragment, "rightFragment");

transaction.commit();

 

二:Fragment与activity相互获取

 Fragment可以通过getActivity()方法来获取Activuty的实例,然后可以调用activity中的一些方法  比如:findViewById();

相似的,activity也可以通过getFragmentManager()获取fragment的引用从而调用fragment中的方法

三:Fragment与activity之间、或者fragment与fragment之间共享事件

比如:一个fragment A显示文章题目,Fragment B 显示文章内容  

则 当一个文章被选中的时候,Fragment A必须通知 activity  然后activity 再通知Fragment B 这种情况下  需要在Fragment A中生命一个借口 

public interface MyFragmentListener {
    public void myFragmentListener();
}

之后在包含Fragment A的activity 中实现这个接口  用覆写myFragment()方法将Fragment A 中发生的事通知 Fragment B 

为了确保宿主activity 实现这个接口 Fragmeng A 的onAttach()方法中将传入的activity 强制转类型,实例化一个MyFragmentListener对象

 

四:Fragment的生命周期

宿主activity的生命周期直接影响到Fragment 的生命周期,比如activity生命周期的回调韩式调用时,所有在其中的Fragment的相同回调函数也会同时被调用

另外:Fragment还有一些额外的生命周期回调函数 

onAttach()

  当fragment和activity被关联时调用。

onCreateView()

  当创建fragment的UI被初始化时调用。

onActivityCreated()

  当activity的onCreate()方法返回时调用。

onDestroyView()

  当fragment的UI被移除的时候调用。

onDetach()

  当fragment和activity去关联时调用

 

 

 

posted @ 2014-10-18 16:43  <*梦之缘*>  阅读(173)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3