安卓开发fragment报错_android开发 Fragment嵌套调用常见错误
在activity中有时需要嵌套调用fragment,但嵌套调用往往带来视图的显示与预期的不一样或是fragment的切换有问题。在使用时要注意几点:
1、fragment中嵌套fragment,子fragment视图无法显示:
如下:
父fragment的.xml文件:
子fragment的xml文件:
此时运行的显示结果如下:
只有父的视图显示,并没有嵌套到子的视图中,分析原因是父的视图一直显示而没有被覆盖,且因为其布局:
android:layout_width=match_parent
android:layout_height=match_parent
为填充整个屏幕,所以无法显示。我们将layout_width与layout_height改为wrap_content,结果如下:
为了让子Fragment可以充满屏幕,父Fragment必须用FrameLayout的布局方式。即修改父.xml文件为:
结果为:
2、要在各个Fragment间切换,必须要有一个fragmentmanager可以管理所有的fragment,这样在进行切换时才能用fragmengmanager调用transaction对这些fragment进行操作。
比如如下结构的demo:
Mainactivity包含fragment1,fragment1又包含fragment2.这样为了让fragment1与fragmeng2切换,在Mainactivity中包含fragmengmanager fm来对1、2切换,代码如下(在Mainactivity.java中):
public static void switchContent(Fragment from,Fragment to,String toTag){
if(from!=to){
FragmentTransaction transaction=fm.beginTransaction();
transaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
if(!to.isAdded()){
transaction.hide(from).add(R.id.container, to,toTag).commit();
}else{
transaction.hide(from).show(to).commit();
}
}
}
在fragment1的.java文件中调用上述静态方法即可。这里不能在fragment1中用getChildFragmentManager对fragmeng2进行管理,因为这样会导致2作为1的子视图,在调用:
transaction.hide(fragment1).add(R.id.container, fragment2,frag2).commit();
时由于,将fragment1隐藏,此事fragment2也跟着隐藏,屏幕将一片空白。
此文章仅供大家出现问题时,提供一个思路,并不是技术贴,望大神们勿喷
安卓开发fragment报错_android开发 Fragment嵌套调用常见错误相关推荐
- 安卓开发fragment报错_Android应用开发之嵌套Fragments (Nested Fragments) 的使用及常见错误讲解...
本文将带你了解Android应用开发Android Fragment的使用学习之嵌套Fragments (Nested Fragments) 的使用及常见错误讲解,希望本文对大家学Android有所帮 ...
- 想要python不报错,进来看看-->python常见错误和异常处理
错误和异常 概念 两种容易辨认的错误 语法错误:一些关于语法的错误[缩进] 异常:代码完全正确,但是,程序运行之后,会报出 的错误 exception/error 代码演示: list1 = ...
- 阿里云主机安装开发工具包报错处理
环境: 阿里云主机系统版本:Centos6.2 x64 错误: 安装开发工具包报错,使用163yum源: # yum groupinstall "Development tools&q ...
- cesium 开发记录报错:DeveloperError: Appearance/Geometry mismatch.
cesium 开发记录报错:DeveloperError: Appearance/Geometry mismatch. The appearance requires vertex shader at ...
- Moore-Penrose广义逆:可解决MATLAB报错“矩阵接近奇异值,或者缩放错误。结果可能不准确”
上一篇博文讲到:<方程AX=b的解的讨论(特解.通解.零空间向量等概念)及其MATLAB实现>,程序中用到的是mldivide或者A\b的方法(二者相同)来解方程. 但实际上运行过程中我们 ...
- CFX计算报错和相应解决办法(浮点错误等-持续更新)
CFX计算报错和相应解决办法(浮点错误等-持续更新) 1.CFX浮点错误 Floating point exception:Overflow 数值计算过大,浮点数位数不够,使用双精度double类型计 ...
- nginx集群报错“upstream”directive is not allow here 错误 [
nginx集群报错"upstream"directive is not allow here 错误 搭建了一个服务器, 采用的是nginx + apache(多个) + php + ...
- 数据库中,把角色的权限授权给用户总是报错,角色名附近有语法错误的原因
摘要:微信搜索[三桥君] 软件:Sql server 2014 一.问题 数据库中,使用GRANT<角色>TO<用户>,把角色的权限授权给用户总是报错,角色名附近有语法错误的原 ...
- uniapp热更新报错安装失败[-1201]:WGT/WGTU文件格式错误?
记录一下折磨了两天的uniapp热更新报错安装失败[-1201]:WGT/WGTU文件格式错误 1.报错原因是因为下载路径/下载文件错了,我的服务器上映射的下载地址访问后打开一个网页(图1),需要进去 ...
最新文章
- ajax跨域,这应该是最全的解决方案了
- 含有min()函数的栈,各种操作时间复杂度为O(1)
- 理解javascript中的函数模式
- JavaScript实现hornerMethod霍纳法算法(附完整源码)
- 每天一道LeetCode-----在字符串s中找到最短的包含字符串t中所有字符的子串,子串中字符顺序无要求且可以有其他字符
- java openSession和getCurrentSession的比较
- C# async await
- java编程思想(注释文档)
- Atitit 判断判断一张图片是否包含另一张小图片
- 如何寻找、下载期刊投稿的LaTeX模板
- 用户登录页面以及后台方法、拦截器
- 硬盘安装Win10系统教程_Win10官网
- 关于混入(minxs)的使用
- win10与xp/win7 局域网不通的修改方法
- windows开机启动项设置
- AEC-Q100和ISO26262 ASIL-B双重认证
- Report_SRW工具的基本用法(概念)
- 一分钟带你了解配置好一切软件环境变量
- 学弟学妹:大佬们,别劝了,学不动了,学不动了
- 【​观察】史彦泽:销售易绝不坐等风口 坚持守正出奇以制胜