解决ListView/GridView重复getView浪费资源问题
来源:互联网 发布:centos回到根目录 编辑:程序博客网 时间:2024/06/14 10:34
以GridView作为示例。
先说原因:GirdView在绘制布局前会绘制一个Item去探测高度,因此导致循环调用Adapter的getView方法。
网上解决:之前看到有人说把GridView的高度设为MATCH_PARENT或者固定高度即可,经过测试发现没有效果。
解决方式:
- 重写GirdView
@TargetApi(Build.VERSION_CODES.L)public class UIGridView extends GridView {private boolean measure = false;public UIGridView(Context context) {super(context);}public UIGridView(Context context, AttributeSet attrs) {super(context, attrs);}public UIGridView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}public UIGridView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {super(context, attrs, defStyleAttr, defStyleRes);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {measure = true;super.onMeasure(widthMeasureSpec, heightMeasureSpec);}@Overrideprotected void onLayout(boolean changed, int l, int t, int r, int b) {measure = false;super.onLayout(changed, l, t, r, b);}public boolean isMeasure() {return measure;}public void setMeasure(boolean measure) {this.measure = measure;}}
- 利用添加的绘图开关变量进行优化
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {<span style="white-space:pre"></span>//判断GirdView状态,如果处于Measure直接返回convertView,不进行数据处理if (photoGridView.isMeasure() && convertView != null) {return convertView;}
0 0
- 解决ListView/GridView重复getView浪费资源问题
- 解决listview,gridview的getview多次调用问题
- 解决ListView,gridView多次调用getView
- listview重复调用getView()方法,解决
- GridView重复调用getView有关问题
- ListView,GridView的getView多次调用问题
- Android ListView 重复调用getView问题
- listview因高度问题,重复调用getView
- listView重复调用getView的问题
- ListView和GridView重复调用getView的解决方法
- Android 解决ListView、GridView在首次显示时adapter可能多次调用getView的问题
- 彻底解决listview,gridview的getview多次调用问题
- 彻底解决listview,gridview的getview多次调用问题
- listview,gridview的getview多次调用的问题
- ListView和GridView 自定义Adapter的getView()方法调用问题
- 彻底解决listview,gridview的getview多次调用问题
- android listview中getView重复被调用的问题
- android listview中getView重复被调用的问题
- hdu2489
- Python 实现程序的单一实例
- 老毛桃 移动硬盘做启动盘 分区
- android wifi连接可接收数据, gprs不能
- android4.3 按键消息处理分析
- 解决ListView/GridView重复getView浪费资源问题
- C printf函数中参数执行顺序
- ActiveMQ 分析系列(二)
- ucos-ii示例7:内存管理测试
- 学密码学一定得学程序
- poj2349
- PHP单文件/多文件上传
- Linux网络编程入门
- 同步与异步的概念