Android之RadioButton配合Fragment实现懒加载
来源:互联网 发布:门窗设计软件 编辑:程序博客网 时间:2024/05/22 17:28
在Android开发搭建主界面框架的时候,我们一般都会使用RadioButton然后监听点击事件配合FragmentManager来实现主界面的切换。如图,假设我们APP有四个主模块:
一般的思路
- 首先我们需要创建出四个模块的实例
- 通过getSupportFragmentManager在RadioButton的点击事件里面hide、show对应的Fragment
如果是这种情况,我们的mainActivity里面必须同时持有四个主Fragment的引用,这样很浪费空间。因为用户停留在首页页面时,其他页面的实例就已经全部创建出来了。
那我们能不能在用户点击到哪个页面时我们在创建呢?当然可以,这就是我们今天要说的Fragment的懒加载。
懒加载思路
- 首先在activity创建的时候,将首页显示出来
// 这里创建一个成员变量记录目前正在显示的FragmentmShowFragment = new HomeFragment(); // 这里非常重要,添加Fragment的时候,我们添加对应的TAG,TAG名虽然随意,但尽量使用该Fragment的类名,getSupportFragmentManager().beginTransaction().add(R.id.container, mShowFragment, HomeFragment.TAG).commit();
- 创建一个页面切换的方法:
/** * @param tag 标记名 * @param cls 需要创建的Fragment的类名 */ private void switchPage(String tag, Class cls) { // 通过此方法我们可以查找在当前容器中是否存在该tag名的Fragment Fragment fragment = getSupportFragmentManager().findFragmentByTag(tag); if (fragment == null) { try { // 通过反射创建出该类对象 Fragment instance = (Fragment) cls.newInstance(); getSupportFragmentManager().beginTransaction().add( R.id.container, instance, tag).commit(); mShowFragment = instance; } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } else { getSupportFragmentManager().beginTransaction().hide(mShowFragment).show(fragment).commit(); mShowFragment = fragment; } }
- 最后在RadioButton的监听事件中,我们只需要这么调用:
public void onClick(View view) { switch (view.getId()) { case R.id.controller_category: switchPage(CategoryFragment.TAG, CategoryFragment.class); break; case R.id.controller_home: switchPage(HomeFragment.TAG, HomeFragment.class); break; case R.id.controller_mine: switchPage(MineFragment.TAG, MineFragment.class); break; case R.id.controller_live: switchPage(LiveFragment.TAG, LiveFragment.class); break; } }
怎么样,是不是特别简洁优雅。
0 0
- Android之RadioButton配合Fragment实现懒加载
- fragment配合viewpager实现懒加载
- Android之Viewpager+Fragment实现懒加载
- Android之Viewpager+Fragment实现懒加载
- Android之ViewPager+Fragment实现懒加载
- Android Fragment实现懒加载
- Android Fragment 实现懒加载
- Android 实现fragment懒加载
- Android之Fragment懒加载
- Android之Fragment懒加载
- Android开发之Viewpager+Fragment实现懒加载
- Android优化方案之--Fragment的懒加载实现
- Android学习之FragmentTabHost配合Fragment使用
- 安卓常见布局:RadioButton配合Fragment实现底部菜单栏切换
- RadioButton实现Fragment切换
- Android中ViewPager配合Fragment使用避免重复加载
- android——Fragment实现懒加载
- Android Fragment懒加载简单实现
- 【实战演练】SQL SERVER——SQL语句优化建议
- 功耗优化方法
- 雇员管理系统
- Android 优化系列之---APP瘦身
- 对300万一张表数据,用游标进行循环,不同写法的效率比较
- Android之RadioButton配合Fragment实现懒加载
- idea将项目导出为war包
- hdoj2004
- Android之EventBus1.0 和EventBus3.0的使用详解
- C++ Vector 删除符合条件的元素
- 图片测试小程序1
- Eclipse中运行MapReduce程序控制台无调试信息-log4j
- 批量处理PCbO3C算法20170214
- PAT-B1023.组个最小数