在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嵌套调用常见错误相关推荐

  1. 安卓开发fragment报错_Android应用开发之嵌套Fragments (Nested Fragments) 的使用及常见错误讲解...

    本文将带你了解Android应用开发Android Fragment的使用学习之嵌套Fragments (Nested Fragments) 的使用及常见错误讲解,希望本文对大家学Android有所帮 ...

  2. 想要python不报错,进来看看-->python常见错误和异常处理

    错误和异常 概念 两种容易辨认的错误 ​ 语法错误:一些关于语法的错误[缩进] ​ 异常:代码完全正确,但是,程序运行之后,会报出 的错误 exception/error 代码演示: list1 = ...

  3. 阿里云主机安装开发工具包报错处理

    环境: 阿里云主机系统版本:Centos6.2 x64 错误: 安装开发工具包报错,使用163yum源: # yum  groupinstall   "Development tools&q ...

  4. cesium 开发记录报错:DeveloperError: Appearance/Geometry mismatch.

    cesium 开发记录报错:DeveloperError: Appearance/Geometry mismatch. The appearance requires vertex shader at ...

  5. Moore-Penrose广义逆:可解决MATLAB报错“矩阵接近奇异值,或者缩放错误。结果可能不准确”

    上一篇博文讲到:<方程AX=b的解的讨论(特解.通解.零空间向量等概念)及其MATLAB实现>,程序中用到的是mldivide或者A\b的方法(二者相同)来解方程. 但实际上运行过程中我们 ...

  6. CFX计算报错和相应解决办法(浮点错误等-持续更新)

    CFX计算报错和相应解决办法(浮点错误等-持续更新) 1.CFX浮点错误 Floating point exception:Overflow 数值计算过大,浮点数位数不够,使用双精度double类型计 ...

  7. nginx集群报错“upstream”directive is not allow here 错误 [

    nginx集群报错"upstream"directive is not allow here 错误 搭建了一个服务器, 采用的是nginx + apache(多个) + php + ...

  8. 数据库中,把角色的权限授权给用户总是报错,角色名附近有语法错误的原因

    摘要:微信搜索[三桥君] 软件:Sql server 2014 一.问题 数据库中,使用GRANT<角色>TO<用户>,把角色的权限授权给用户总是报错,角色名附近有语法错误的原 ...

  9. uniapp热更新报错安装失败[-1201]:WGT/WGTU文件格式错误?

    记录一下折磨了两天的uniapp热更新报错安装失败[-1201]:WGT/WGTU文件格式错误 1.报错原因是因为下载路径/下载文件错了,我的服务器上映射的下载地址访问后打开一个网页(图1),需要进去 ...

最新文章

  1. ajax跨域,这应该是最全的解决方案了
  2. 含有min()函数的栈,各种操作时间复杂度为O(1)
  3. 理解javascript中的函数模式
  4. JavaScript实现hornerMethod霍纳法算法(附完整源码)
  5. 每天一道LeetCode-----在字符串s中找到最短的包含字符串t中所有字符的子串,子串中字符顺序无要求且可以有其他字符
  6. java openSession和getCurrentSession的比较
  7. C# async await
  8. java编程思想(注释文档)
  9. Atitit 判断判断一张图片是否包含另一张小图片
  10. 如何寻找、下载期刊投稿的LaTeX模板
  11. 用户登录页面以及后台方法、拦截器
  12. 硬盘安装Win10系统教程_Win10官网
  13. 关于混入(minxs)的使用
  14. win10与xp/win7 局域网不通的修改方法
  15. windows开机启动项设置
  16. AEC-Q100和ISO26262 ASIL-B双重认证
  17. Report_SRW工具的基本用法(概念)
  18. 一分钟带你了解配置好一切软件环境变量
  19. 学弟学妹:大佬们,别劝了,学不动了,学不动了
  20. 【​观察】史彦泽:销售易绝不坐等风口 坚持守正出奇以制胜

热门文章

  1. 干货 | 神经网络与深度学习精选文章汇总
  2. 图例符号居中显示_R可视化08|ggplot2图层-标度图层(scale layer)-图例篇
  3. SVM熟练到精通5:MATLAB实例
  4. WOR文件转换成GST文件
  5. delphi中的指针与C类似
  6. go语言中变量的定义和使用
  7. BUUCTF-Reverse:helloword + findit(安卓逆向)
  8. 双向循环链表的冒泡排序
  9. 包含多个段的程序---汇编学习笔记
  10. TCP listen() Backlog 参数详解