activity 嵌套一级fragment,一级fragment嵌套二级fragment,在一级fragment中刷新二级fragment中的UI

简介:   今天遇到挺纠结的问题,由于产品设计的问题,技术上涉及到activity 嵌套一级fragment,一级fragment嵌套二级fragment,在一级fragment中刷新二级fragment中的UI。

  今天遇到挺纠结的问题,由于产品设计的问题,技术上涉及到activity 嵌套一级fragment,一级fragment嵌套二级fragment,在一级fragment中刷新二级fragment中的UI。
  
  其中一级fragment中有顶部搜索栏,搜索栏下面有viewpager+fragment的布局,搜索栏输入内容后要更新子当前页面的fragment的搜索方法,并刷新UI.
  
  adapter:

private class OrderManagerFragmentPagerAdapter extends FragmentPagerAdapter {
        public OrderManagerFragmentPagerAdapter(FragmentManager fm) {
            super(fm);
        }


        @Override public Fragment getItem(int position) {
            switch (position) {
                case 0:
                    return NewOrderFragment.newInstance();
                case 1:
                    return FollowingFragment.newInstance();
                case 2:
                    return DesperatelyFollowingFragment.newInstance();
                case 3:
                    return RobbedFragment.newInstance();
                case 4:
                    return TransferFragment.newInstance();
                case 5:
                    return ClinchDealFragment.newInstance();
                case 6:
                    return LostFragment.newInstance();
                case 7:
                    return NoEffectFragment.newInstance();
                default:
                    return null;
            }
        }


        @Override public CharSequence getPageTitle(int position) {
            return TITLES[position % TITLES.length];
        }


        @Override public int getCount() {
            return TITLES.length;
        }
    }

  调用adapter的getitem()并调用子当前页面的fragment的搜索方法,并刷新UI,但是出错,子fragment中UI组件为null,adapter为null;
  
  正确调用姿势为:

 int    position   = pager.getCurrentItem();
        String searchWord = searchtv.getSearchWord();
        //两层fragment嵌套,调用指定fragment的刷新操作,fuck,这方法找了好几天
        Fragment fragment = getChildFragmentManager().getFragments().get(position);

获取当前显示的子fragment,然后调用子fragment的搜索方法,并刷新UI.,完美实现。


 

  2016年2月26日21:23:21更
  
  由于这里获取子fragment,需要进行强制类型转换,因此有可能出现ClassCastException,所以需要在switch语句外面进行try catch操作进行异常情况的处理。

相关文章
|
开发工具 Android开发
Appium之获取app的package和activity以及UI界面定位方法
一、获取APP的package(包名)和activity 在使用android自动化测试工具monkeyrunner和appium中启动应用时,需要填写被测程序的包名和启动的Activity,以下有几种查看应用包名package和入口activity名称的方法: 1.
2271 0
|
9月前
element ui 上传图片之后跳转、刷新、保存,预览和删除丢失问题
这问题困惑了我好久,在官方的element ui 的组件库中,直接拿来使用的话,只有当前显示效果,一旦刷新页面或者保存之后,就会丢失,预览和删除功能。当保存后,保存到后端接口,再次查看,图片是能渲染出来,但是由于保存页面刷新,随之整个上传过程失败,而查看所拿到的图片只是一张静态图片,要想再次预览和查看,需要重新选中上传
129 0
|
9月前
|
ARouter Android开发 容器
现代化 Android 开发:多 Activity 多 Page 的 UI 架构
本文为现代化 Android 开发系列文章第四篇。
4530 57
Flutter实时动态UI刷新、数据交互
Flutter实时动态UI刷新、数据交互
|
10月前
|
Java Android开发 容器
Android实战开发--小慕笔记UI设计(Fragment布局的使用)
Android实战开发--小慕笔记UI设计(Fragment布局的使用)
Android实战开发--小慕笔记UI设计(Fragment布局的使用)
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
两位谷歌华人研究员发布首个纯视觉「移动UI理解」模型,四大任务刷新SOTA
两位谷歌华人研究员发布首个纯视觉「移动UI理解」模型,四大任务刷新SOTA
106 0
|
12月前
|
JSON JavaScript 前端开发
用 SAP UI5 Select 控件(下拉列表),来驱动表格控件(Table)刷新的一个实战例子试读版
用 SAP UI5 Select 控件(下拉列表),来驱动表格控件(Table)刷新的一个实战例子试读版
|
Android开发 容器
Android VSYNC (Choreographer)与UI刷新原理分析
Android VSYNC (Choreographer)与UI刷新原理分析
387 0
Android VSYNC (Choreographer)与UI刷新原理分析
Cloud for Customer UI Designer里embedded component刷新的讨论
Cloud for Customer UI Designer里embedded component刷新的讨论
52 0
Cloud for Customer UI Designer里embedded component刷新的讨论
|
Web App开发 JavaScript
在Chrome console里修改Vue界面元素,更新如何刷新回UI?
在Chrome console里修改Vue界面元素,更新如何刷新回UI?
228 0
在Chrome console里修改Vue界面元素,更新如何刷新回UI?

热门文章

最新文章