Android基础之使用inflater来实现动态加载布局
2015-08-05 11:50
656 查看
一、动态加载与静态加载的区别
1、动态加载是一种优化,降低资源的耗费。偶尔,在布局中会有一些比较复杂但是又很少用到的控件。不管它是消息详情,进度条还是未完成的提示信息,你都可以直到真正需要的时候再加载他们,以降低你的内存消耗,提升渲染效率。
2、动态布局,也就是可以根据业务的需求改变界面。实际上就是用代码写出界面,代码量比较大。而且维护起来十分的繁琐。特别是一些界面空间比较多的时候。静态的布局,是通过xml来实现的,适用于页面比较固定的情况。但是维护起来比较方便。
二、使用inflater来实现动态加载布局
1、在Activity、Fragment等中可获取到getLayoutInflater()
2、在Adapter中不能获取到getLayoutInflater(),通过上下文获取
三、在布局中动态添加组件
1、例子1
2、例子2
3、例子3
1、动态加载是一种优化,降低资源的耗费。偶尔,在布局中会有一些比较复杂但是又很少用到的控件。不管它是消息详情,进度条还是未完成的提示信息,你都可以直到真正需要的时候再加载他们,以降低你的内存消耗,提升渲染效率。
2、动态布局,也就是可以根据业务的需求改变界面。实际上就是用代码写出界面,代码量比较大。而且维护起来十分的繁琐。特别是一些界面空间比较多的时候。静态的布局,是通过xml来实现的,适用于页面比较固定的情况。但是维护起来比较方便。
二、使用inflater来实现动态加载布局
1、在Activity、Fragment等中可获取到getLayoutInflater()
LayoutInflater _inflater = getLayoutInflater(); View _view = _inflater.inflate(R.layout.activity_main, null); setContentView(_view);
2、在Adapter中不能获取到getLayoutInflater(),通过上下文获取
LayoutInflater _inflater = LayoutInflater.from(mContext); View view = _inflater.inflate(R.layout.activity_main, null); setContentView(_view);
三、在布局中动态添加组件
1、例子1
// 1、获取根布局属性 FrameLayout _frameLayout = (FrameLayout) findViewById(R.id.flyt_main); // 2、获取组件,设置组件属性 final Button _button = new Button(this); _button.setText("跳转到TwoActivity"); // 3、在布局中添加组件,设置组件属性 _frameLayout.addView(_button,LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
2、例子2
// 1、获取根布局属性 FrameLayout _frameLayout = new FrameLayout(this); // 2、获取组件,设置组件属性 final Button _button = new Button(this); _button.setText("跳转到TwoActivity"); // 3、在布局中添加组件,设置组件属性 _frameLayout.addView(_button,LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); // 4、调用Window.setContentView()加载界面 setContentView(_frameLayout);
3、例子3
protected void AppendMainBody(int pResID) { // 1、获取根布局属性 LinearLayout _mainBody = (LinearLayout) findViewById(R.id.llyt_main_body); // 2、获取组件,设置组件属性 View _view = LayoutInflater.from(this).inflate(pResID,null); // 3、在布局中添加组件,设置组件属性 _mainBody.addView(_view, RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT); }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories