文档章节

ScrollView和ListView一起使用 文本换行getMeasuredHeight等问题的解

bigtiger02
 bigtiger02
发布于 2014/05/09 15:32
字数 243
阅读 1579
收藏 4
点赞 1
评论 0

首先,ListView不能直接用,要自定义一个,然后重写onMeasure()方法:


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

public class MyListView extends ListView {

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

第二步:写个计算listView每个Item的方法:


public void setListViewHeightBasedOnChildren(ListView listView) {
	 // 获取ListView对应的Adapter
	 ListAdapter listAdapter = listView.getAdapter();
	 if (listAdapter == null) {
	  return;
	 }
	 int totalHeight = 0;
	 for (int i = 0; i < listAdapter.getCount(); i++) { // listAdapter.getCount()返回数据项的数目
	  View listItem = listAdapter.getView(i, null, listView);
	  listItem.measure(0, 0); // 计算子项View 的宽高
	  totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度
	 }
	 ViewGroup.LayoutParams params = listView.getLayoutParams();
	 params.height = totalHeight
	   + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
	 // listView.getDividerHeight()获取子项间分隔符占用的高度
	 // params.height最后得到整个ListView完整显示需要的高度
	 listView.setLayoutParams(params);
}


第三步:listview添加适配器后设置高度即可:

listView.setAdapter(adapter); 
new ListViewUtil().setListViewHeightBasedOnChildren(listView);



本文转载自:http://blog.sina.com.cn/s/blog_4568633c0101i1dy.html

共有 人打赏支持
bigtiger02

bigtiger02

粉丝 20
博文 8
码字总数 6889
作品 0
深圳
技术主管
listItem.measure(0, 0) 空指针问题

在android中有时候scrollView需要嵌套listview,当scrollView嵌套listview时,会出现listview显示不全的问题,这时候有很多解决的办法,其中一个类似下面的代码: public void setListViewH...

似水流年0_0
2015/12/14
811
0
ListView 使用问题

问题1:不能动态获取ViewHolder的TextView控件的getlinecount(),只能返回0? if(convertView == null){convertView = lInflater.inflate(R.layout.listview, null);holder = new ViewHolder......

CrazyManDF
2016/06/08
91
0
ScrollView 与ListView共存会存在滚动的问题

ScrollView 与ListView共存会存在滚动的问题,并且ListView只显示一个半Item。 当ListView的高度设定一定的值时,ListView同样地会显示对应的高度的Item。 因此我们可以计算出这个ListView的...

Jonson
2013/01/06
0
1
Android仿今日头条详情页实现

## 源码地址: Android仿今日头条详情页实现 github源码地址 动态图 最近项目有个需求,需要实现一个和今日头条新闻详情页一样的体验。上部分是webview来展示新闻内容,下半部分是listview来...

ice_Anson
2017/02/06
1K
0
ScrollView嵌套ListView的问题同样适用于gridview

以下文章转自@安卓泡面 在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全。我试过很多种方法,它们各有利弊。 在这里我将会从使用ScrollView嵌套L...

Remix_jx
2015/01/18
0
0
ScrollView中嵌套ListView控件,数据无法显示完全

public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { retur......

会飞柚子
2015/12/21
299
1
浅谈:Android TextView的append方法与滚动条同时使用

一、在Android,一个单独的TextView是无法滚动的,需要放在一个ScrollView中。 ScrollView提供了一系列的函数,其中fullScroll用来实现FOCUSUP和FOCUSDOWN键的功能,也就是滚动到顶部和底部。...

红豆与绿豆
2015/09/23
1K
0
React Native支持任意组件实现下拉刷新功能,并且可以自定义下拉刷新头部

1.背景   无论是Android还是ios,下拉刷新都是一个很有必要也很重要的功能。那么在RN(以下用RN表示React Native)之中,我们该如何实现下拉刷新功能呢?RN官方提供了一个用于ScrollView,Li...

请叫我百米冲刺
2017/06/22
0
0
Android-解决ViewFlipper与ScrollView滑动响应事件拦截的问题【转】

最近在做一个简单的展示界面时,遇到了一个比较棘手的问题。由于要展示多项内容,所以使用ViewFlipper作为水平滑动容器;而每项内容中由于许多文本较长,因此需要使用ScrollView作为垂直滑动...

球球
2016/05/20
13
0
Android有用代码片段(三)

前两个已经到第四十个了,所以还得再开一篇,用于记录,以前文章:Android有用代码片段(二)、android有用代码片段,有需要的朋友可以去看一下。 四十一、数据库写入图片信息: 数据库中的字...

迷途d书童
2012/03/30
629
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

AngularJs $resource 高大上的数据交互

$resource 创建一个resource对象的工厂函数,可以让你安全的和RESFUL服务端进行数据交互。 需要注入 ngResource 模块。angular-resource[.min].js 默认情况下,末尾斜杠(可以引起后端服务器...

孟飞阳
9分钟前
0
0
打印斐波那契数

package com.jerry.ch04;public class PrintFibonacci {public static void main(String[] args) {for (int i=0; i<10; i++) {System.out.print(fib(i) + " ");}......

JerryNing
14分钟前
0
0
shell编程

一、shell脚本介绍

人在艹木中
15分钟前
0
0
istio 0.8 遥测 案例

==============遥测===================================== 演示如何从网格中收集遥测信息。 分布式跟踪。如何配置代理以向Zipkin或Jaeger发送跟踪请求 收集度量标准和日志。此任务说明如何配...

xiaomin0322
17分钟前
0
0
ND4J求多元线性回归以及GPU和CPU计算性能对比

上一篇博客《梯度下降法求多元线性回归及Java实现》简单了介绍了梯度下降法,并用Java实现了一个梯度下降法求回归的例子。本篇博客,尝试用dl4j的张量运算库nd4j来实现梯度下降法求多元线性回...

冷血狂魔
18分钟前
0
0
springboot常用注解

@SpringBootApplication: 包含@Configuration、@EnableAutoConfiguration、@ComponentScan 通常用在主类上。 @Service: 用于标注业务层组件。 @RestController: 用于标注控制层组件(如strut...

GoldenVein
24分钟前
1
0
如何进行大数据的入门级学习?

不知道你是计算机专业应届生还是已经从业者。总之,有java基础的学生学习大数据会轻松很多,零基础的小白都需要从java和linux学起。 如果你是一个学习能力特别强,而且自律性也很强的人的话可...

董黎明
38分钟前
0
0
使用Parcelable传递复杂参数

最近做AIDL传递对象,对象必须实现Parcelable的方法才可以被传递。 @Override    public int describeContents() {//这个 默认返回0就行了。        return 0;    }    ...

火云
39分钟前
0
0
十大Intellij IDEA快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发...

HJCui
49分钟前
0
0
word 使用mathtype 编写 数学公式

下载安装,这个链接命名。。。。 http://www.mathtype.cn/xiazai.html 安装之后会多出一个选项 使用内联方式插入图表 编写公式的界面 设置支持latex 语法 输入公式回车就可以看到结果...

阿豪boy
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部