解决listview与scroll冲突,自定义listview高度

//自定义listview的高度
private void listviewHeight(ListView list){
  ListAdapter listadapte = list.getAdapter();
  if(listadapte==null){
    return;
  }
  int totalH=0;
  for(int i=0,len=listadapte.getCount();i<len;i++){
    //listadapte.getCount()返回数据项的数目
    View listitem=listadapte.getView(i, null, list);
    //计算子项的高度
    listitem.measure(0, 0);
    //计算所有子项的高度
    totalH+=listitem.getMeasuredHeight();
  }
  ViewGroup.LayoutParams params=list.getLayoutParams();
  //params.height获取整个listview的高度
  //list.getDividerHeight()获取子项间隔符几个高度
  params.height=totalH+(list.getDividerHeight()*(listadapte.getCount()-1));
  list.setLayoutParams(params);
}

最后在oncreate()调用此方法

时间: 2024-11-29 11:30:48

解决listview与scroll冲突,自定义listview高度的相关文章

ListView和ScrollView冲突

当ListView放在ScrollView中的时候,无论你设置高度为 match_parent(填充父窗体)和wrap_content(包裹内容)都只显示一行,这是你把ListView放在LinearLayout 中,再给listview一个具体的高度,就可以显示多行了. 如: <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"> <L

ScrollView嵌套ListView的滑动冲突问题,是看大神的方法的,作为学习以后用的到

在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结构的原因.这个结构碰到的问题.几种解决方案和优缺点比较,这4个方面来为大家阐述.分析.总结. 实际上不光是ListView,其他继承自AbsListView的类也适用,包括ExpandableListView.GridView等等,为了方便说明,以下均用ListView来代表. 大神就是牛,给出了好

ListView与ScrollView冲突的4种解决方案

问题解决方案1.手动设置ListView高度    经过测试发现,在xml中直接指定ListView的高度,是可以解决这个问题的,但是ListView中的数据是可变的,实际高度还需要实际测量.于是手动代码设置ListView高度的方法就诞生了. /** * 动态设置ListView的高度 * @param listView */ public static void setListViewHeightBasedOnChildren(ListView listView) { if(listView

android解决listview与scrollview的冲突、自定义listview的高度以及上下拉刷新

     很多时候我们需要使用listview与嵌套使用,那么问题来了,listview里面自带了 滚动条,而又嵌套在scrollview里面.所以引发了一系列的冲突.listview显示不全. 今天给出一个全新的上下拉刷新与解决冲突的方案. .点击下载下拉刷新上拉加载工具      下载完工具后我们复制粘贴到我们自己的工程里面,使用方式和自定义view一样. 下面贴出代码 看到代码贴如也就这么回事.但是我们注意了,这个时候的listview是包裹在scroll里面的.那么滚动起来肯定不行的..

简单解决ListView和ScrollView冲突,复杂情况仅供参考

ScrollView嵌套ListView冲突问题的最优解决方案 (转) 记录学习之用 项目做多了之后,会发现其实 ScrollView嵌套ListVew或者GridView等很常用,但是你也会发现各种奇怪问题产生.根据个人经验现在列出常见问题以及代码最少最简单的解决方法. 问题一 : 嵌套在 ScrollView的 ListVew数据显示不全,我遇到的是最多只显示两条已有的数据. 解决办法:重写 ListVew或者 GridView,网上还有很多若干解决办法,但是都不好用或者很复杂. @Over

解决ScrollView中嵌套ListView滚动效果冲突问题

在ScrollView中嵌套使用ListView,ListView只会显示一行到两行的数据.起初我以为是样式的问题,一直在对XML文件的样 式进行尝试性设置,但始终得不到想要的效果.后来在网上查了查,ScrollView和ListView两个View都有滚动的效果,在嵌套使用时起了冲 突,一般不建议两者套用. 下面说说具体解决方案.方案的主要思路就是根据ListView子项重置其高度. 解决方案代码如下: java代码: [html] view plain copy print? /** * 重

通过自定义ListView解决在scrollView中的嵌套问题

个人觉得通过自定义listView控件比较简单,可以解决在scrollView中嵌套listview的问题. 代码如下: <span style="font-family:SimSun;font-size:14px;">public class MyListView extends ListView { public MyListView(Context context) { super(context); } public MyListView(Context conte

ScrollView中嵌入ListView,GridView冲突的解决(让ListView全显示出来)

ScrollView中嵌入原生ListView或GridView,会出现ListView,GridView显示不全的问题. 解决方法:重新构造一个ListView或GridView,重写OnMeasure()方法: // ListView 1 import android.widget.ListView; 2 3 public class MyListView extends ListView{ 4 5 public MyListView(android.content.Context cont

scroll中放入listview,并解决scroll初始化不置顶问题

首先,scroll中放入listview的话,listview是显示不全的,这时候需要动态修改listview的长度 public void setListViewHeight(ListView listView) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int