ScrollView中嵌套GridView,ListView滚动冲突解决方法
2015-12-10 17:29
483 查看
引言
在实际项目中长春会遇见ScrollView与GridView、ListView滚动冲突的问题,因此本文就来记录一下解决该冲突的办法。问题描述
在ScrollView中嵌套一个带滚动的View,比如GridView会导致GridView显示不全,效果如下图:解决办法
可以自定义GridView来解决这一冲突,很简单,只需要几行代码即可。package com.winton.component; import android.content.Context; import android.util.AttributeSet; import android.widget.GridView; public class GridviewOnScrollview extends GridView{ public GridviewOnScrollview(Context context) { super(context); // TODO Auto-generated constructor stub } public GridviewOnScrollview(Context context,AttributeSet attrs) { // TODO Auto-generated constructor stub super(context,attrs); } public GridviewOnScrollview(Context context,AttributeSet attrs,int defStyle) { // TODO Auto-generated constructor stub super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub int expandSpec = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
如上所示,只需要重写OnMeasure()方法即可。
//关键代码 int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec);
使用
更改完代码,将其作为自定义控件一样使用,代码如下:<?xml version="1.0" encoding="utf-8"?> <com.winton.component.GridviewOnScrollview xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gv" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:horizontalSpacing="@dimen/margin_between_channel" android:numColumns="4" android:stretchMode="columnWidth" android:verticalSpacing="@dimen/margin_between_channel" android:padding="4dip" />
效果
效果还是可以的,基本达到了需求。结尾
今天先到这里,欢迎小伙伴们QQ骚扰。相关文章推荐
- 如何解决ubuntu下用wine出现“wine cannot find MFC42.dll”的问题
- 【计算机网络】:考完所感,送给下届学妹学弟
- Java编程思想之成员初始化
- MySQL cluster 7.2集群部署配置
- 高通apps代码上传perforce服务器问题
- Android NDK开发编译时提示 Native method not found,NDK *** could not be resolved
- Sed教程(一):简介、环境设置、工作流程
- POJ 1703 Find them, Catch them
- NIO DirectByteBuffer深入理解
- Android 的Handler、Looper和MessageQueue的关系和实现原理
- MyBatis+MySql Insert操作失败解决办法
- Protocol Buffer技术详解(语言规范)
- Hibernate、SpringJDBC中在注解模式下获取数据库连接
- linux终端常用快捷键
- 判断出栈顺序
- GSM模块短信发送举例
- ubuntu 安装软件
- 最长上升子序列 nlogn时间复杂度 poj 2533
- 平台主数据库支持类型及配置说明
- unicode