ScrollView嵌套GridView、ListView的解决办法

简介:

问题:
在Android开发当中经常会用到了需要ScrollView嵌套GridView或者是ListView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView或ListView会显示不全。

解决方案:
自定义GridView或ListView,去掉其滚动条。一下为GridView的例子。
复写GridView:

import android.content.Context; 
 import android.util.AttributeSet; 
 import android.widget.GridView; 
  
 public class MyGridView extends GridView { 
     public MyGridView(Context context, AttributeSet attrs) { 
         super(context, attrs); 
     } 
  
     public MyGridView(Context context) { 
         super(context); 
     } 
  
     public MyGridView(Context context, AttributeSet attrs, int defStyle) { 
         super(context, attrs, defStyle); 
     } 
  
     @Override 
     public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
  
         int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, 
                 MeasureSpec.AT_MOST); 
         super.onMeasure(widthMeasureSpec, expandSpec); 
     } 
  
 } 
 package com.yang.widget;
 
import android.content.Context;
 import android.util.AttributeSet;
 import android.widget.GridView;
 
public class MyGridView extends GridView {
  public MyGridView(Context context, AttributeSet attrs) {
   super(context, attrs);
  }
 
 public MyGridView(Context context) {
   super(context);
  }
 
 public MyGridView(Context context, AttributeSet attrs, int defStyle) {
   super(context, attrs, defStyle);
  }
 
 @Override
  public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
 
  int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
     MeasureSpec.AT_MOST);
   super.onMeasure(widthMeasureSpec, expandSpec);
  }
 
}
 

在布局文件当中使用自定义的GridView:
[html] <com.yang.widget.MyGridView
android:id="@id/bolg_category_gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:horizontalSpacing="5dp"
android:numColumns="4"
android:stretchMode="columnWidth"
android:verticalSpacing="6dp" />
<com.yang.widget.MyGridView
android:id="@id/bolg_category_gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:horizontalSpacing="5dp"
android:numColumns="4"
android:stretchMode="columnWidth"
android:verticalSpacing="6dp" />
相关文章
|
11月前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
1265 4
|
人工智能 vr&ar 图形学
开源单图生成3D模型TripoSR的应用场景
【2月更文挑战第24天】开源单图生成3D模型TripoSR的应用场景
381 1
开源单图生成3D模型TripoSR的应用场景
|
3天前
|
人工智能 运维 安全
|
1天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
761 109
|
2天前
|
机器学习/深度学习 传感器 算法
Edge Impulse:面向微型机器学习的MLOps平台——论文解读
Edge Impulse 是一个面向微型机器学习(TinyML)的云端MLOps平台,致力于解决嵌入式与边缘设备上机器学习开发的碎片化与异构性难题。它提供端到端工具链,涵盖数据采集、信号处理、模型训练、优化压缩及部署全流程,支持资源受限设备的高效AI实现。平台集成AutoML、量化压缩与跨硬件编译技术,显著提升开发效率与模型性能,广泛应用于物联网、可穿戴设备与边缘智能场景。
169 127
|
3天前
|
算法 Python
【轴承故障诊断】一种用于轴承故障诊断的稀疏贝叶斯学习(SBL),两种群稀疏学习算法来提取故障脉冲,第一种仅利用故障脉冲的群稀疏性,第二种则利用故障脉冲的额外周期性行为(Matlab代码实现)
【轴承故障诊断】一种用于轴承故障诊断的稀疏贝叶斯学习(SBL),两种群稀疏学习算法来提取故障脉冲,第一种仅利用故障脉冲的群稀疏性,第二种则利用故障脉冲的额外周期性行为(Matlab代码实现)
229 152