初探碎片
2016-03-20 22:02
381 查看
解决android studio中使用碎片后,平板预览出错问题
![](http://ww3.sinaimg.cn/large/85184d39gw1eyy7an6b2ij20e4086gls.jpg)
预览出错
解决办法:
在左右fragment各加
tools:layout="@layout/left_fragment"
问题地址,点进去后记得顶这个问题!
显示正常了:
![](http://ww4.sinaimg.cn/large/85184d39gw1eyy7ecrts8j20da08iglt.jpg)
显示
其中,使用碎片的顺序应该是,写的方向则相反:
1 | fragment->碎片类: 调用该类 碎片类->布局: 加载该布局 |
动态添加碎片
12 | //新建碎片类实例 anotherFragment anotherFragment = new anotherFragment(); //碎片管理器 android.app.FragmentManager fragmentManager = getFragmentManager(); //用碎片管理器开启事务 FragmentTransaction transaction = fragmentManager.beginTransaction(); //替换前者容器中的碎片实例,从这里可以看出,在布局文件<fragment name="...">,实际上是创建了该碎片类的实例 transaction.replace(R.id.right_container,anotherFragment); //提交事务 transaction.commit(); |
在碎片中模拟返回栈
在事务(transaction)被commit前,添加transaction.addToBackStack(null),按Back键可以返回事务前的状态
从布局文件获取碎片实例,接着就可以调用碎片的方法:
1 | LeftFragment leftfrag = (LeftFragment) getFragmentManager().findFragmentById(R.id.left_frag); |
因为:活动)(1)<–绑定–>布局<–包含–>碎片->对应碎片类->在碎片类里面通过getActivity()获取相关联活动(1)
碎片的生命周期
若有在事务提交前 addToBackStack,那么起初的碎片会onPause->onStop->onDestroyView,按Back键会重新加载该碎片 onActivityCreated->onStart->onResume(没有onCreateView,原因是借助addToBackStack使得先前碎片的实例和视图得以保存)反之,在碎片被替换后,onDestroyView->onDestroy->onDetach
preview无法显示
![](http://ww4.sinaimg.cn/large/85184d39gw1eyznahk9g0j20i90aw40z.jpg)
preview
问题的解答
大致意思是,只要你代码写的对,真实运行的是时候就不会出错,忽略这个问题即可。我想会不会和上面的那个问题有关,加上
tools:layout="@layout/left_fragment"果然正确显示出来了
其实,可以推理出,
tools:layout="@layout/left_fragment"不过是用了来自
xmlns:tools="http://schemas.android.com/tools"的工具,你不加,无非无法预览而已,该运行的还是运行起走
相关文章推荐
- SQL SERVER-主键的建立和删除
- 类成员函数参数和类成员变量的可见性
- Java 位操作符使用---Single Number
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现【多种语言AES/CBC/PKCS5Padding通用加解密数据】
- Android 设置主题实现点击波纹效果
- NSString转GBK编码格式
- Android 内容提供器(Content Provider)
- 20135202闫佳歆--week4 课本第5章学习笔记
- 第四周学习笔记
- 猎豹MFC--Socket编程基础UDP发送端
- 二探ListView
- U-Net: Convolutional Networks for Biomedical Image Segmentation
- ACM第一次练习—1016
- progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条
- 第4周项目3—随机数函数 猜数字游戏
- java中处理字符编码(网页与数据库)(转)
- 自定义控件类
- Vmware vSphere 6.0之在一台服务器上安装Platform与vCenter Server
- 实现一个简单的按钮实例-上下左右,左旋转,右旋转,放大缩小。代码重构
- Android Service 与Activity之间的通讯方式