重新计算listview高度
来源:互联网 发布:零起点学通c语言要多久 编辑:程序博客网 时间:2024/05/18 17:24
按常理,ScrollView套ListView会存在两个问题:
1.里面的listView高度无法算出来,通常只能显示listview的其中一行
2.listview不能滚动
1.里面的listView高度无法算出来,通常只能显示listview的其中一行
2.listview不能滚动
public class NewListview extends ListView { public NewListview(Context context) { super(context); } public NewListview(Context context, AttributeSet attrs) { super(context, attrs); } public NewListview(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override /** * 重写该方法,达到使ListView适应ScrollView的效果 */ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);//重新计算listview高度 super.onMeasure(widthMeasureSpec, expandSpec); }}
nMeasure方法是测量view和它的内容,决定measured width和measured height的,这个方法由 measure(int, int)方法唤起,子类可以覆写onMeasure来提供更加准确和有效的测量。
其中两个输入参数:
widthMeasureSpec
heightMeasureSpec
分别是parent提出的水平和垂直的空间要求。
这两个要求是按照View.MeasureSpec类来进行编码的。
参见View.MeasureSpec这个类的说明:这个类包装了从parent传递下来的布局要求,传递给这个child。
每一个MeasureSpec代表了对宽度或者高度的一个要求。
每一个MeasureSpec有一个尺寸(size)和一个模式(mode)构成。
MeasureSpecs这个类提供了把一个的元组包装进一个int型的方法,从而减少对象分配。当然也提供了逆向的解析方法,从int值中解出size和mode。
0 0
- 重新计算Listview高度
- 重新计算listview高度
- 重新计算ListView的高度
- GridView跟ListView高度重新计算
- android ScrollView 里嵌套listview listview 重新计算高度
- android中scroll中的listview高度重新计算
- 重新计算ViewPager高度
- ScrollView 嵌入Listview,当Listview中的Textview多余一行,高度如何重新计算
- android 计算ListView 高度
- 计算listview的高度
- 计算listview高度
- 计算listview的高度
- 动态计算Listview高度
- 计算ListView高度
- listview 动态计算高度
- ListView高度计算
- 计算listview一项高度
- 重新计算ViewPager的高度
- Linux中用st_mode判断文件类型
- apache commons fileupload 1.3.1(六)FileItem部分
- FragmentPagerAdapter 标准写法 fragment + viewpager
- C# 常用方法
- Struts2常用属性配置
- 重新计算listview高度
- 【Raspberry Pi系列】3. 交叉编译环境配置
- JavaMail发送邮件
- 网络摘抄
- 提高group by语句的执行效率
- Struts2文件上传和下载
- Frequentist和Bayesian之间的故事
- think php A方法
- 侧边栏 MMDrawerController使用教程