ListView动态控制条数,总是显示不全,现在在网上找到解决方案,与大家分享
大概思路,重写ListView类的onMeasure(...)方法,xml布局使用自定义的HstListView类,代码如下:
package com.hst.taxmobile.common; import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; public class HstListView extends ListView { public HstListView(Context context) { // TODO Auto-generated method stub super(context); } public HstListView(Context context, AttributeSet attrs) { // TODO Auto-generated method stub super(context, attrs); } public HstListView(Context context, AttributeSet attrs, int defStyle) { // TODO Auto-generated method 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); } }
页面设置:
<com.hst.taxmobile.common.HstListView android:id="@+id/pmxx_listview" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="#eeeeee" android:dividerHeight="10dp" android:background="@drawable/shapes_rect_round" />
上面这种是通用的,有些可以使用以下方法计算出当前ListView的长度:
/* * 根据listView的child数量设置listView的高度 */ public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); }
相关推荐
ListView 控件可有 4 种不同的视图显示方法 ListView 控件是 Windows 操作系统中的一种常用控件,能够显示大量的数据,并提供了多种视图显示方法。根据不同的应用场景,可以选择适合的视图显示方法。 一、视图显示...
在Android开发中,ListView是一种非常常见且重要的控件,它用于显示一列可滚动的数据集。在实际应用中,我们经常需要对ListView进行动态操作,比如动态增加、删除控件条目,甚至允许用户编辑这些条目的内容。下面将...
在本主题中,我们将深入探讨如何利用C#的ListView控件来实现图标的各种视图显示。 首先,我们需要了解ListView控件的基本结构。ListView包含多个列(Columns)和多个项(Items),每一项又可以有多个子项(SubItems...
在Android开发中,ListView是一种非常常见且重要的控件,它被广泛用于显示大量的数据视图,尤其是在处理数据库数据时。ListView允许用户滚动查看多个条目,优化内存使用,提高用户体验。本节将深入探讨如何使用...
标签“ListView 视图 不同”进一步强调了我们关注的是ListView视图的多样性。在实际应用中,这样的功能可能用于新闻应用,显示不同类型的文章(如标题、摘要、全文),或者在联系人应用中,展示带有头像和详细信息的...
总之,Android ListView的多视图嵌套多视图功能允许开发者根据数据动态调整列表单元格的布局,提供更加灵活的UI设计。在实际应用中,合理利用Adapter和视图复用可以显著提升ListView的性能和用户体验。通过理解和...
本教程将详细介绍如何根据EditText的输入内容,动态更新ListView的数据并实时显示。 首先,我们需要在布局文件中设置EditText和ListView。EditText作为搜索框,用户在此输入搜索关键词;ListView用于展示数据,我们...
在C#的WinForms应用程序开发中,`ListView` 控件是常用的一种界面元素,用于显示一系列条目,并且支持多种视图模式,如大图标、小图标、列表、详细信息等。在实际应用中,我们常常需要在运行时动态地向`ListView`...
- ListView是Android中的一个视图容器,可以显示一列可滚动的项目列表。每个列表项可以由不同的视图类型表示,通过`Adapter`进行数据和视图的绑定。 2. **Adapter机制**: - Adapter是ListView与数据源之间的...
在Android开发中,ListView是展示大量数据的一种常见视图组件,尤其适用于菜单、选项列表等场景。本资源提供了一个完整的Android应用示例,专门讲解如何实现ListView及其交互功能。 首先,ListView的基础在于...
然而,当ListView的数据项数量不确定,或者每个数据项的高度不固定时,如何让ListView动态适应屏幕高度,避免出现滚动条异常或内容显示不全的问题,就成了一个常见的挑战。本篇文章将详细探讨这个问题,并提供一种...
标题"listview每行显示不一样的控件"和描述揭示了如何自定义ListView的每个item来实现这一功能。 首先,我们要理解ListView的工作原理。ListView通过Adapter类来连接数据源和视图。Adapter是桥梁,负责将数据转化为...
ListView是Android SDK中的一个视图容器,主要用于显示大量数据的列表。它通过Adapter来绑定数据,并且支持动态加载和滚动优化,可以有效提高性能。在ListView中,每个可见的item都是一个View,可以通过自定义View...
当在一个ScrollView内嵌套一个ListView时,可能会遇到显示不全的问题,这通常是由于两者都具有滚动功能而产生的冲突。下面将详细解释这个问题,并提供解决方案。 首先,我们需要理解ScrollView和ListView的工作原理...
"Android listview动态加载不同布局"这一主题,主要涉及如何在ListView中根据不同的数据类型或者状态显示不同的视图(View)布局,提升用户体验并优化性能。 首先,要实现ListView动态加载不同布局,我们需要理解...
ListView 的视图缓存机制是指 ListView 在显示数据时,会将已经显示的视图缓存在内存中,以便在下一次显示时直接使用,这样可以减少视图的创建和销毁,提高 ListView 的性能。convertView 是 ListView 中的一个重要...
动态追加数据是指在ListView已有的内容基础上,根据用户操作或网络数据加载情况,实时添加新的数据项,同时显示追加进度,以提高用户体验。这里我们将深入探讨如何实现这个功能。 首先,我们需要一个ListView实例,...
适配器负责将数据转化为ListView可显示的视图。 4. 设置适配器:调用ListView的setAdapter方法,传入创建好的适配器实例。 ```java ListView listView = findViewById(R.id.list_view); ArrayAdapter<String> ...
这个"ListView中显示不同的视图布局实现重用Demo"是专门针对ListView的一种优化技术,它允许开发者在同一个ListView中展示不同类型的视图布局,同时实现视图复用,提高性能。在Android应用设计中,这种技术对于创建...
在Android开发中,ListView是一种常用的UI组件,它允许开发者显示一组长列表的数据,通常用于展示大量可滚动的信息。本篇文章将深入探讨如何在ListView中动态添加数据,这在实际应用中是非常常见且重要的功能。 ...