Android scrollview里面放listview 滚动出现的问题:listview展示不全

    技术2022-07-10  133

    问题: scrollview中加LinearLayout,然后在LinearLayout中又加了listview;导致listview展示不全,只展示出一条数据。

    解决: 先写一个工具类

    package com.android.fmis.client.util; import android.view.View; import android.view.ViewGroup; import android.widget.ListAdapter; import android.widget.ListView; public class ListHeightUtils { public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition 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设置了adapter填充数据后调用此方法,重新设置一下listview的高度,就搞定了。

    于此同时会产生一些问题

    问题1:scrollview界面出来不是显示的最顶端【滚动条不是在最顶端】, 那么请在 listview填充后 这样设置

    ScrollView s=(ScrollView)findViewById(R.id.scrollview1); s.smoothScrollTo(0, 20);

    Processed: 0.009, SQL: 9