Android中ListVIew高度自适应,解决ScrollView冲突问题以及Android表格

效果图

类似格式,

listView_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tieshu"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textColor="#000"
        android:gravity="center"
        android:textSize="12sp" />

    <View
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:background="#000" />

    <TextView
        android:id="@+id/usage"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textColor="#000"
        android:gravity="center"
        android:textSize="12sp" />

    <View
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:background="#000" />

    <TextView
        android:id="@+id/unit"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_gravity="center"
        android:textColor="#000"
        android:textSize="12sp" />

    <View
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:background="#000" />

    <TextView
        android:id="@+id/drugType"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textColor="#000"
        android:gravity="center"
        android:textSize="12sp" />

    <View
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:background="#000" />

    <TextView
        android:id="@+id/count"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textColor="#000"
        android:gravity="center"
        android:textSize="12sp" />

    <View
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:background="#000" />

    <TextView
        android:id="@+id/drugName"
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:textColor="#000"
        android:textSize="12sp" />

    <View
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:background="#000" />

</LinearLayout>

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);
	}

冲突:

如果嵌套在ScrollView中使用 listView无法自适应的话  请在setAdapter之后在调用自适应方法。

如果大家有什么好的 实现表格方法除了recyclerview  请推荐 谢谢。。

时间: 2024-10-12 08:56:58

Android中ListVIew高度自适应,解决ScrollView冲突问题以及Android表格的相关文章

Android ListView高度自适应和ScrollView冲突解决

在ScrollView中嵌套使用ListView,ListView只会显示一行到两行的数据.起初我以为是样式的问题,一直在对XML文件的样式进行尝试性设置,但始终得不到想要的效果.后来在网上查了查,ScrollView和ListView两个View都有滚动的效果,在嵌套使用时起了冲突,一般不建议两者套用. 下面说说具体解决方案.方案的主要思路就是根据ListView子项重置其高度. 首先,ListView不能直接用,要自定义一个,然后重写onMeasure()方法: 1 import andro

ScrollView 中ListView 高度不能正常显示(转)

解决办法如下: public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount();

Android中ListView字母排序,实现字母挤压效果以及右侧快速选中字母,搜索关键字功能

Android中ListView字母排序,实现字母挤压效果以及右侧快速选中字母,搜索关键字功能 本文中阐述如何自定义EditText实现搜索框自定义的样式以及挤压字母的思路等 自定义EditText 相关的drawable文件 主界面以及相关的适配器 结果展示 定义要呈现的EditText的样式 public class ClearEditText extends EditText implements OnFocusChangeListener, TextWatcher { /** * 定义删

android中listview点击事件失效的灵异事件

首先说明一下我想实现的功能: 点击某个item之后,让其颜色发生变化.如果变化网上有很多例子,我就不班门弄斧了.Listview之所以点击没有反应是因为上图中绿色部分(自己定义的一个继承BaseAdapter的adapter来适应listview)将listview的item覆盖了.现在点击的只是自定义的adapter中的convertView. 其次,自定义的adapter中包含一个ImageView和二个TextView.代码如下: <?xml version="1.0" e

Android中ListView的addFooterView不显示的问题

mListView.addFooterView(btn_more, null, false); mListView.setAdapter(mBlogListAdapter); 把addFootView放在setAdapter之前就可解决. Android中ListView的addFooterView不显示的问题

Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案

Android中ListView异步加载图片错位.重复.闪烁问题分析及解决方案 我们在使用ListView异步加载图片的时候,在快速滑动或者网络不好的情况下,会出现图片错位.重复.闪烁等问题,其实这些问题总结起来就是一个问题,我们需要对这些问题进行ListView的优化. 比如ListView上有100个Item,一屏只显示10个Item,我们知道getView()中convertView是用来复用View对象的,因为一个Item的对应一个View对象,而ImageView控件就是View对象通

Android中ListView分类

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:orientation = "vertical" android:layout_width = "fill_parent" android:layo

Android中ListView选中时的黄色底色

Android的ListView中默认选中时底色为黄色,如何去掉呢 其中会用到一个属性: android:listSelector="#00000000" 这样就行了 Android中ListView选中时的黄色底色

Android中ListView使用总结

LisView介绍: (一).ListView 概念: ListView是Android中最重要的组件之一,几乎每个Android应用中都会使用ListView.它以垂直列表的方式列出所需的列表项.java.lang.Object   ? android.view.View    ? android.view.ViewGroup      ? android.widget.AdapterView        ? android.widget.AbsListView          ? and