ScrollView下的ListView问题解决

简介: 问题描述:在一个复合布局当中,有TextView、ListView、Button等,除了button之外,其余高度不定,是动态变化的,很容易超过一个屏幕的高度,这个时候我们需要给总布局添加一个ScrollView,但因为ListView集成与ScrollView,所以会导致listview的Scroll效果失效; 解决方法:找了很多方法,大体思路是动态设计ListView的Item高度,

问题描述:在一个复合布局当中,有TextView、ListView、Button等,除了button之外,其余高度不定,是动态变化的,很容易超过一个屏幕的高度,这个时候我们需要给总布局添加一个ScrollView,但因为ListView集成与ScrollView,所以会导致listview的Scroll效果失效;

解决方法:找了很多方法,大体思路是动态设计ListView的Item高度,经过不断找文章,试demo,终于发现网友一个解决方法,现在分享给大家~

解决思路:重写ListView,改写onMeasure方法

package com.jby.exam;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

public class VoteList extends ListView {

	public VoteList(Context context) {
		super(context);
	}
	
	public VoteList(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public VoteList(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
	}
}




注意:XML布局文件引用自己的控件,需要写好包名,如:

<com.jby.exam.VoteList
      android:id="@+id/vote_listview"
      android:layout_height="wrap_content"
      style="@style/vote_listview" >
</com.jby.exam.VoteList>


相关文章
|
小程序 开发工具 git
【微信小程序】-- uni-app 项目--- 购物车 -- 配置 tabBar 效果(五十一)
【微信小程序】-- uni-app 项目--- 购物车 -- 配置 tabBar 效果(五十一)
|
传感器 监控
基于STM32的智能工厂生产线监控系统设计与实现
基于STM32的智能工厂生产线监控系统设计与实现
733 0
|
4月前
|
存储 域名解析 缓存
DNS解析过程
DNS(域名系统)解析是将域名转换为IP地址的过程,对互联网运行至关重要。解析方式主要包括递归查询和迭代查询。递归查询由本地DNS服务器代为完成,简化客户端操作;迭代查询则需客户端逐级向根DNS服务器、TLD服务器和权威DNS服务器请求。过程中涉及缓存机制以提高效率,如客户端与本地DNS服务器缓存及TTL值管理。示例中,解析www.example.com需依次通过本地、根、TLD和权威DNS服务器获取IP地址。
545 18
|
开发工具 git Windows
【Git】warning: LF will be replaced by CRLF in .gitignore解决方案
warning: LF will be replaced by CRLF in .gitignore解决方案
echart时间轴设置详解
时间轴设置详解
1054 0
|
开发工具 git
git clone避坑的万能步骤
git clone避坑的万能步骤
2825 1
241Echarts - 3D 散点图(Scatter3D)
241Echarts - 3D 散点图(Scatter3D)
430 0
|
Kubernetes Cloud Native 测试技术
使用ASM流量泳道的全链路灰度发布实践
服务网格ASM实现全链路灰度发布:通过流量泳道隔离不同版本环境,配置虚拟服务实现灰度比例控制。从创建泳道、打标签、部署新版本到灰度切流、最终上线及下线旧版。
|
安全
钉钉扫码登录不跳转的情况,可能有以下几种原因:
钉钉扫码登录不跳转的情况,可能有以下几种原因:
1632 3
|
开发者 UED 智能硬件
请简要介绍一下鸿蒙操作系统的特点和优势。
请简要介绍一下鸿蒙操作系统的特点和优势。
2035 0