Fragment的简介及使用笔记
来源:互联网 发布:白苹果的数据能恢复吗 编辑:程序博客网 时间:2024/06/06 04:26
详参 http://blog.csdn.net/lmj623565791/article/details/37970961
1、Fragment可以作为Activity的一个组成部分且必须依赖于Activity存在,拥有自己的生命周期。
2、Activity与Fragment的生命周期关系如下图所示
3、Fragment的静态使用:
①写一个Fragment对应的layout(例中名为main_fragment1)
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="fragment要展示的内容" android:textSize="20sp" /></LinearLayout>
②在Fragment的class文件(例中名为MainFragment1)中继承Fragment,重写onCreateView,选定对应布局文件
public class MainFragment1 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.main_fragment1, container, false); return view; }}
③将此fragment作为一种控件,放入需要展示的Activity对应的layout中
<fragment android:id="@+id/id_main_fragment" android:layout_width="match_parent" android:name="com.example.a11964.myclock.MainFragment1" android:layout_height="0dp" android:layout_weight="1" />
4、Fragment的动态使用
先如法炮制上面静态Fragment的使用,创建若干个要用到的Fragment及其对应的layout,然后在想要使用动态Fragment的地方放置一个FrameLayout用来存放Fragment
activity_main.xml中
<FrameLayout android:id="@+id/id_main_frameLayout" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" />
MainActivity中
@Override public void onClick(View view) { FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); switch (view.getId()) { case R.id.id_main_imgBtn1: if (fragment1 == null) { fragment1 = new MainFragment1(); } //(被替换项,替换项) ft.replace(R.id.id_main_frameLayout, fragment1); break; case R.id.id_main_imgBtn2: if (fragment2 == null) { fragment2 = new MainFragment2(); } ft.replace(R.id.id_main_frameLayout, fragment2); break; } // 事务提交 ft.commit(); }
如上所示,我们需要做的就是给按钮设置关联的Fragment,这样就完成了基本的replace方法。其余方法(add,remove,hide,show等)类似就不一一列举,详见置顶blog。
以下详参:http://blog.csdn.net/lmj623565791/article/details/37992017
5、Fragment中回退栈的使用
6、Fragment与Activity之间的通信
字太多不想打,= = 照搬一段:
因为所有的Fragment都是依附于Activity的,所以通信起来并不复杂,大概归纳为:
a、如果你Activity中包含自己管理的Fragment的引用,可以通过引用直接访问所有的Fragment的public方法
b、如果Activity中未保存任何Fragment的引用,那么没关系,每个Fragment都有一个唯一的TAG或者ID,可以通过getFragmentManager.findFragmentByTag()或者findFragmentById()获得任何Fragment实例,然后进行操作。
c、在Fragment中可以通过getActivity得到当前绑定的Activity的实例,然后进行操作。
注:如果在Fragment中需要Context,可以通过调用getActivity(),如果该Context需要在Activity被销毁后还存在,则使用getActivity().getApplicationContext()。
未完待续…
- Fragment的简介及使用笔记
- Fragment简介及使用注意事项
- Fragment的使用简介【Android】
- 笔记23 Fragment使用详解及心得--Fragment的生命周期
- Android Fragment简介及生命周期
- Fragment 简介及应用汇总
- fragment简介及你应该知道的一切
- Fragment的生命周期及setuservisiblehint的使用
- Android Fragment的生命周期及使用
- Fragment的用法简介
- Fragment使用时的一些笔记
- 笔记 Android的Fragment初使用
- Android笔记之Fragment的使用
- CButtonST的简介及使用
- PuTTY的简介及使用
- Properties的简介及使用
- Android之Fragment使用简介
- Android碎片Fragment使用简介
- RabbitMQ 修改配置文件 启动rabiitQ
- Python+Selenium实现浏览器爬虫多窗口切换
- 1013. 数素数
- SPFA算法
- 编程实现直接插入排序、希尔排序、冒泡排序、快速排序、选择排序
- Fragment的简介及使用笔记
- C++ 常量对象,成员函数,引用
- POJ
- 点击Dialog以外的区域不让其隐藏的解决办法
- 完数(5分)
- 网易云课堂JAVA入门编程题6-1
- JAVA 构造方法与匿名对象
- CSS特殊样式(七)CSS3下的纸张效果实现展示
- Luogu P2386 放苹果