android硬件加速(View.LAYER_TYPE_SOFTWARE)与GridView for ScrollView 显示问题
2015-12-29 15:10
183 查看
直奔主题:
GridView放在ScrollerView中是无法正常显示的,这个问题网上讨论比较多,大家也都比较清楚,主要做法是自定义一个GridView,如下:
但我这样做了之后,发现一个问题,当这个GridView放入ScrollView中时,当高度不超过手机屏幕时,是可以正常显示的,但是当高度超过手机时,发现GridView中的Item都不能正常显示了,一片空白,如下图
百度好久,未果。。。。
发现我的代码中有一行:sectionViewPhoto.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
大家应该都知道,这是开启硬件加速的,为了让view显示更平滑,在这里我是为了显示用shape画的虚线。
但是 目前,Android对硬件加速的支持并非完美,有些绘制操作在开启硬件加速的情况下不能正常工作(具体的列表可以参考Android开发者文档)。
注释掉这行代码后,GridView显示正常:
希望能帮到一些朋友。
GridView放在ScrollerView中是无法正常显示的,这个问题网上讨论比较多,大家也都比较清楚,主要做法是自定义一个GridView,如下:
package com.ecity.xinao.ui.widget; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.GridView; public class PhotoHistoryItemGridView extends GridView { public PhotoHistoryItemGridView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public PhotoHistoryItemGridView(Context context, AttributeSet attrs) { super(context, attrs); } public PhotoHistoryItemGridView(Context context) { super(context); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
但我这样做了之后,发现一个问题,当这个GridView放入ScrollView中时,当高度不超过手机屏幕时,是可以正常显示的,但是当高度超过手机时,发现GridView中的Item都不能正常显示了,一片空白,如下图
百度好久,未果。。。。
发现我的代码中有一行:sectionViewPhoto.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
大家应该都知道,这是开启硬件加速的,为了让view显示更平滑,在这里我是为了显示用shape画的虚线。
但是 目前,Android对硬件加速的支持并非完美,有些绘制操作在开启硬件加速的情况下不能正常工作(具体的列表可以参考Android开发者文档)。
注释掉这行代码后,GridView显示正常:
希望能帮到一些朋友。
相关文章推荐
- Android_AnimationDrawable介绍及使用
- MTK android L使用汇顶TP如何使用B协议
- Android-->Fragment生命周期详解(上)
- android studio 用 Live Templates 自动生成switch、try、for、if
- Jenkins构建Android项目持续集成之findbugs的使用
- android 按钮两次点击事件区分
- androidstudio的gradle project sync failed解决
- Android应用:使用adb获得activity堆栈信息
- Android中多界面的退出
- Android拍照裁剪图片
- Android使用libgdx实现模拟方向键控制角色移动的方法
- android onKeydown
- VideoView 设置静音
- Android编程实现加载等待ProgressDialog的方法
- Android5.x之RecyclerView使用
- 8 个最优秀的 Android Studio 插件
- Android软键盘弹出时把布局顶上去的解决方法
- android自定义控件知识点
- (第一行代码笔记)调试Android程序
- Android中Adapter的notifyDataSetInvalidated()和notifyDataSetChanged()的区别