博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android Fragment浅谈
阅读量:4614 次
发布时间:2019-06-09

本文共 1912 字,大约阅读时间需要 6 分钟。

对于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去关联时调用

 

 

 

转载于:https://www.cnblogs.com/liuluchao/p/4033344.html

你可能感兴趣的文章
你必知必会的SQL面试题
查看>>
html5 Canvas绘制时钟以及绘制运动的圆
查看>>
云推送注意(MSDN链接)
查看>>
Metro Style app :浏览器扩展
查看>>
linux的kernel是怎样工作的(TI_DM36X_ARM系统)(1)
查看>>
[luogu4310] 绝世好题 (递推)
查看>>
[luogu3203 HNOI2010] 弹飞绵羊 (分块)
查看>>
mui搜索框 搜索点击事件
查看>>
2016012003+陈琦+散列函数的应用及其安全性
查看>>
Android 状态栏通知Notification、NotificationManager详解
查看>>
UIApplicationDelegate协议
查看>>
Jmeter测试dubbo接口填坑
查看>>
[zz]GDB调试精粹及使用实例
查看>>
数据库的创建和删除
查看>>
最简单的三层实例【插入据
查看>>
设计模式学习笔记——Prototype原型模式
查看>>
pom.xml里有红叉报错的解决办法
查看>>
Perl last和next的用法区别
查看>>
Selenium 管理 Cookies
查看>>
exceptionfunction[LeetCode]Permutations
查看>>