`
loDANve
  • 浏览: 6446 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

listview与scrollview并存时,自动设置listview高度

阅读更多
不说废话,直接上代码,实现功能看标题
//获取adapter
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);  //获取子view
                 //设置子view的大小与父布局无关,这里容易报错后面说
	        listItem.measure(0, 0);  
                 //累加计算总高度
	        totalHeight += listItem.getMeasuredHeight();  
	    }  

             //下面是设置listview的高度
	    ViewGroup.LayoutParams params = listview.getLayoutParams();  
	    params.height = totalHeight + (listview.getDividerHeight() * (listAdapter.getCount() - 1));  
	    ((MarginLayoutParams)params).setMargins(10, 10, 10, 10);
	    listview.setLayoutParams(params);

listItem.measure(0, 0);   这里容易报NullPointerException异常
是因为在adapter的getView中
convertView = LayoutInflater.from(context).inflate(R.layout.XXX, null);

这里第二个参数如果传null就会出现上面空指针的异常。
改为:
convertView = LayoutInflater.from(context).inflate(
					R.layout.XXX, parent, false);

即可,注意第三个参数false必须要传不然会报
java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView
分享到:
评论

相关推荐

    listview与scrollview冲突问题解决

    尽管上述方法能够在技术上解决`ListView`与`ScrollView`嵌套时的滚动冲突问题,但在用户体验方面,这种设计通常被视为不佳。理想的设计应当避免在`ScrollView`中直接嵌套`ListView`,而是采用分层的界面设计策略,...

    android完美解决listView与ScrollView滑动冲突

    2. **设置ScrollView的高度**:将ScrollView的高度设置为一个具体的值,确保它只显示一个ListView项,这样用户在滑动ScrollView时实际是在滑动ListView。但这可能会影响界面设计的灵活性。 3. **使用 ...

    经典ScrollView嵌套ListView和ScrollView

    很多朋友因项目需求问题需要在ScrollView中...在此个大家分享一种一个案例源代码能够很随意的解决ScrollView与ListView、ScrollView与ScrollView的嵌套滑动的问题,个人亲手测试200%达到你预期的目的!希望能帮到大家!

    ListView和ScrollView冲突

    自定义的一个ListView,在布局的时候使用,可以解决ListView和ScrollView冲突问题

    Listview与Scrollview冲突的问题

    2. **自定义ListView**:重写ListView的onMeasure()方法,让其高度适应内容高度,这样ScrollView就不会试图对其进行滚动。 3. **避免嵌套**:尽量避免在同一个布局中同时使用ListView和ScrollView。如果内容可以被...

    解决Android中ListView和ScrollView嵌套冲突

    这样,ListView会根据自己的内容动态调整高度,从而避免与ScrollView的冲突。 2. **设置ListView的动态高度**:在布局XML中,将ListView的高度设置为WRAP_CONTENT。然后,在代码中,通过计算ListView的总高度来设置...

    listview_scrollview动态改变Headview

    在Android开发中,ListView和ScrollView是两种常用的布局控件,分别用于展示可滚动的列表视图和可滚动的内容视图。本主题将深入探讨如何在ListView或ScrollView中动态改变Headerview的透明度以及实现显示或隐藏的...

    listview在scrollview中完整显示

    这主要是因为ScrollView会尝试包含所有的子视图,而ListView内部已经处理了自身的滚动逻辑,所以ScrollView会误认为ListView只有一个高度(即一个条目高度),而不是所有条目的总高度。这就导致了ListView只能显示一...

    Android解决ListView嵌套ScrollView不能刷新

    然而,当ListView需要与ScrollView嵌套使用时,可能会遇到一些问题,特别是不能正常刷新。本文将深入探讨这个问题,并提供解决方案。 首先,我们要理解为什么ListView嵌套ScrollView会导致刷新问题。ListView自身...

    ScrollView中自定义ListView

    当ListView被ScrollView包裹时,ListView的滚动会被ScrollView接管,导致ListView的滚动优化机制失效,可能会造成卡顿或滚动不顺畅。 为了解决这个问题,我们需要自定义一个ListView,让它能在ScrollView内正常工作...

    解决ListView 和 ScrollView 共存冲突的问题

    例如,当ScrollView滑动到底部时,可以禁用其滚动,让ListView继续接收触摸事件。 7. **使用Headerview和Footerview**: 如果只是想在ListView上方或下方添加可滚动的内容,可以使用ListView的Headerview和...

    解决scrollView和listview滚动冲突,实现listview滑动到顶端和底部之后还能拖拽一定的距离,松开后返回

    2. **自定义布局**:创建一个自定义的ScrollView,重写其`onInterceptTouchEvent`和`onTouchEvent`方法,当检测到ListView需要滚动时,将触摸事件传递给ListView。同样,ListView也需要相应地调整事件处理逻辑。 3....

    嵌套listview的scrollview

    6. **计算预估高度**:为了避免ListView在ScrollView中占用过多空间,可以计算ListView的高度并设置一个固定值。这样,ScrollView只需要滚动到固定高度,而不是根据ListView的内容高度。 总的来说,实现"嵌套...

    解决listview和scrollview冲突

    当ListView被包含在ScrollView中时,由于ScrollView并不了解ListView的复用机制,它会尝试处理整个ListView的滚动,这就会导致滚动体验变得混乱,有时甚至完全失效。 解决这个问题的一种常见方法是自定义一个继承自...

    关于多个ListView与ScrollView滑动冲突的一个简单处理方法

    本文将详细讲解如何解决多个ListView与ScrollView滑动冲突的简单处理方法。 首先,理解冲突的本质:ScrollView是一个可以容纳多个View的容器,它可以垂直滚动。而ListView本身就是可滚动的列表,内部已经处理了滑动...

    listView和scrollView焦点冲突问题

    在一些项目中需要用到listview嵌套在scrollview中的情况,但会碰到焦点冲突,scrollview焦点覆盖listview造成listview不能滑动,这种情况时要在scrollview中添加android:fillViewport="true"这句,并在listview中...

    支持嵌套listview的scrollview

    自定义scrollview,支持嵌套listview的scrollview;(需要动态设置listview的高度)

    android ListView和ScrollView事件冲突

    然而,在实际应用中,当ListView被嵌套在ScrollView或者与ScrollView并存时,常常会出现事件冲突的问题,导致ListView的滚动功能失效或者ScrollView无法正常工作。下面我们将深入探讨这个问题,并提供解决方案。 ...

    ScrollView不冲突嵌套ListView

    本篇文章将深入探讨如何解决ScrollView与ListView的嵌套问题,并通过自定义ListView来实现正常显示每个Item,确保滑动操作由ScrollView有效控制。 首先,我们需要理解ScrollView和ListView的工作原理。ScrollView是...

    listview 和ScrollView整合版

    然而,当ListView内部需要展示的内容高度超过一屏时,单纯使用ListView无法实现滚动查看全部内容的效果,这时就需要结合ScrollView来实现整体的滚动功能。 整合ListView和ScrollView的一种常见方法是使用...

Global site tag (gtag.js) - Google Analytics