Android随笔之动态加载布局
来源:互联网 发布:冷暴力孩子知乎 编辑:程序博客网 时间:2024/06/05 14:58
前言:
动态加载与静态加载的区别。
1、动态加载是一种优化,降低了资源的耗费。偶尔,在布局中会有一些比较复杂但是又很少用到的控件,你都可以直到真正需要的时候再加载他们,以降低你的内存消耗,提升渲染效率。
2、动态布局,也就是可以根据业务的需求改变界面。实际上就是用代码写出界面,代码量比较大。而且维护起来十分繁琐。特别是一些界面空间比较多的时候。静态的布局,是通过xml来实现的,适用于页面比较固定的情况。但是维护起来比较方便。
正文:
动态加载布局用inflater来实现。
其步骤一般为:动态加载布局 –> 向布局中动态添加组件
一、动态加载布局:
- 在Activity、Fragment等中可获取到getLayoutInflater()
LayoutInflater _inflater = getLayoutInflater();View view = _inflater.inflate(R.layout.activity_main, null);setContentView(_view);
- 在Adapter中不能获取到getLayoutInflater(),通过上下文获取
LayoutInflater _inflater = LayoutInflater.from(this);View view = _inflater.inflate(R.layout.activity_main, null);setContentView(_view);
二、在布局中动态添加组件:
// 1、获取根布局属性 FrameLayout frameLayout = (FrameLayout) findViewById(R.id.flyt_main); // 2、获取组件,设置组件属性 final Button button = new Button(this); button.setText("跳转到SecondActivity"); // 3、在布局中添加组件,设置组件属性 frameLayout.addView(_button,LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
当然,除了一般方法,当然也有高等级的使用方式,那就是静态XML和动态加载XML混合使用。
混合使用也分为:
静态主Layout动态加载静态子Layout
操作要点:
在一个静态Layout的基础上,将其作为子Layout,构建一个主Layout。
要在主Layout中设置一个容纳子Layout的容器
。
在程序中获取到容器,并将子Layout以view的形式加入主Layout中。静态主Layout动态加载动态的Layout
操作要点:
同样在一个静态Layout的基础上,将其作为子Layout,构建一个主Layout。并在主Layout中设置一个容纳子Layout的容器
。
构建一个自定义的Layout类,在类中加载子Layout(当然,你可以封装很多的方法实现你需要的功能)。
因为子Layout的加载已经包含在自定义的Layout类中,所以需要实例化该Layout类,并将其加入到主Layout中。
详细代码例子请看:android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- Android随笔之动态加载布局
- Android知识点之动态布局加载
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- android 动态加载布局
- Android动态加载布局
- android动态加载布局
- Scala特点-2
- Android Studio模板之文件组
- 【杭电2824】欧拉函数
- echarts中如何使用timeline组件
- static关键字注意事项
- Android随笔之动态加载布局
- poj 2513(字典树等部分借鉴网上代码)
- python——配置环境变量
- string类
- 在代码段中使用数据(0601)
- Opencv 和 c++ 框出图片中的目标
- leetcode 504. Base 7 python
- 保镖(hall定理&&集合动规&&优化)
- MyBatis缓存