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操作进行异常情况的处理。

相关文章
|
5月前
|
Android开发 开发者
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
134 1
|
4月前
|
Android开发 开发者
Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。
【6月更文挑战第26天】Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。要更改主题,首先在该文件中创建新主题,如`MyAppTheme`,覆盖所需属性。然后,在`AndroidManifest.xml`中应用主题至应用或特定Activity。运行时切换主题可通过重新设置并重启Activity实现,或使用`setTheme`和`recreate()`方法。这允许开发者定制界面并与品牌指南匹配,或提供多主题选项。
59 6
|
4月前
|
Android开发 开发者
Android UI中的Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等。要更改主题
【6月更文挑战第25天】Android UI中的Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等。要更改主题,首先在`styles.xml`中定义新主题,如`MyAppTheme`,然后在`AndroidManifest.xml`中设置`android:theme`。可应用于全局或特定Activity。运行时切换主题需重置Activity,如通过`setTheme()`和`recreate()`方法。这允许开发者定制界面以匹配品牌或用户偏好。
39 2
|
ARouter Android开发 容器
现代化 Android 开发:多 Activity 多 Page 的 UI 架构
本文为现代化 Android 开发系列文章第四篇。
4585 57
|
JSON JavaScript 前端开发
用 SAP UI5 Select 控件(下拉列表),来驱动表格控件(Table)刷新的一个实战例子试读版
用 SAP UI5 Select 控件(下拉列表),来驱动表格控件(Table)刷新的一个实战例子试读版
|
Java Android开发 容器
Android实战开发--小慕笔记UI设计(Fragment布局的使用)
Android实战开发--小慕笔记UI设计(Fragment布局的使用)
126 0
Android实战开发--小慕笔记UI设计(Fragment布局的使用)
element ui 上传图片之后跳转、刷新、保存,预览和删除丢失问题
这问题困惑了我好久,在官方的element ui 的组件库中,直接拿来使用的话,只有当前显示效果,一旦刷新页面或者保存之后,就会丢失,预览和删除功能。当保存后,保存到后端接口,再次查看,图片是能渲染出来,但是由于保存页面刷新,随之整个上传过程失败,而查看所拿到的图片只是一张静态图片,要想再次预览和查看,需要重新选中上传
219 0
|
机器学习/深度学习 人工智能 自然语言处理
两位谷歌华人研究员发布首个纯视觉「移动UI理解」模型,四大任务刷新SOTA
两位谷歌华人研究员发布首个纯视觉「移动UI理解」模型,四大任务刷新SOTA
153 0
|
JSON JavaScript 前端开发
用 SAP UI5 Select 控件(下拉列表),来驱动表格控件(Table)刷新的一个实战例子试读版
用 SAP UI5 Select 控件(下拉列表),来驱动表格控件(Table)刷新的一个实战例子试读版