博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android - Fragment(二)加载Fragment
阅读量:6273 次
发布时间:2019-06-22

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

Fragment加载方法

加载方法有两种,在xml文件中注册,或者是在Java代码中加载。

xml中注册

例如在fragment_demo.xml中定义

1 
2
6 7
13 14
20 21

com.rust.fragment.SecondFragment 就是Fragment子类

在 SecondFragment.java 里复写onCreateView方法,并返回定义好的view

activity中直接加载即可

setContentView(R.layout.fragment_demo);

Java代码中加载

① 准备好Fragment xml布局文件

② 新建一个类,继承自Fragment;在这个类中找到Fragment布局文件

③ 在Activity中使用FragmentManager来操作Fragment

④ 别忘了commit

先自定义一个布局文件 fragment_first.xml 

1 
2
8 9
18 19

新建一个类 FirstFragment.java ,继承自Fragment。复写onCreateView方法。在onCreateView方法中,可以操作Fragment上的控件。

1 @Override 2     public View onCreateView(LayoutInflater inflater, ViewGroup container,    Bundle savedInstanceState) { 3         View rootView = inflater.inflate(R.layout.fragment_first, container,false); 4  5 //    fragment_first是自定义好的布局 6  7 //    如果此Fragment上放了控件,比如Button,Edittext等。可以在这里定义动作 8  9         btn_fragment1_send = (Button) rootView.findViewById(R.id.btn_fragment1_1);10 11 //...12         return rootView;13     }

准备一个位置给Fragment,比如在 activity_main.xml 中用Framelayout来占位。

1     
7 8

在 MainActivity.java 里,先获得FragmentManager,得到FragmentTransaction。Fragment的添加删除等操作由FragmentTransaction来完成。

f1 = new FirstFragment();    //    获取实例f2 = new SecondFragment();    //FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();fragmentTransaction.add(R.id.layout_container1,f1);    //    添加fragmentTransaction.replace(R.id.layout_container1,f1);    //    替换// 或者也可以写成fragmentTransaction.replace(R.id.layout_container1,new FirstFragment());//                fragmentTransaction.addToBackStack(null);    //添加到返回栈,这样按返回键的时候能返回已添加的fragmentfragmentTransaction.commit();    //别忘了commit//    移除操作 getFragmentManager().beginTransaction().remove(f1).commit();

相比与xml中注册,代码加载更为灵活一些。个人较为喜欢动态加载。

 

转载地址:http://zympa.baihongyu.com/

你可能感兴趣的文章
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
计算机网络与Internet应用
查看>>
Django 文件下载功能
查看>>
走红日本 阿里云如何能够赢得海外荣耀
查看>>
磁盘空间满引起的mysql启动失败:ERROR! MySQL server PID file could not be found!
查看>>
点播转码相关常见问题及排查方式
查看>>
[arm驱动]linux设备地址映射到用户空间
查看>>
弗洛伊德算法
查看>>
【算法之美】求解两个有序数组的中位数 — leetcode 4. Median of Two Sorted Arrays
查看>>
精度 Precision
查看>>
Android——4.2 - 3G移植之路之 APN (五)
查看>>
Linux_DHCP服务搭建
查看>>
[SilverLight]DataGrid实现批量输入(like Excel)(补充)
查看>>
秋式广告杀手:广告拦截原理与杀手组织
查看>>
翻译 | 摆脱浏览器限制的JavaScript
查看>>
闲扯下午引爆乌云社区“盗窃”乌云币事件
查看>>
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
网吧维护工具
查看>>