Android ScrollView listview 自定义listview导致低配置手机卡死现象

本文探讨了在Android开发中ListView嵌套在ScrollView时只显示一个item的问题,并提供了一种通过重写ListView的onMeasure方法来解决该问题的方法。同时,文章也提到了这种方法可能导致低配置设备上的性能问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     项目中,有这样的需求,需要在listview外层再加一个scorllview以便将listview的布局在某个时候往上移动,一开始直接像下面的方式,只能显示一个item:

 <ScrollView
        android:id="@+id/price_scroll"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <ListView
            android:id="@+id/price_quote_list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:divider="@color/white" >
        </ListView>
    </ScrollView>

      但运行之后看到的现象只显示了listview的一个item,这样肯定是不行的,百度了一下很多人采取的方式是重写listview的onmeasure方法,如下:
package allone.verbank.apad.client.component.fixedListView;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

public class PriceListViewScroll extends ListView {

	public PriceListViewScroll(Context context) {
		super(context);
	}

	public PriceListViewScroll(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public PriceListViewScroll(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	@Override
	public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);
	}

}
    的确使用lisview的只显示一行的问题,但重新打开项目,运行的时候,在三星的平板上整个界面还算不卡,listview略卡,但一旦给测试人员测试的时候发现,使用LG或者低配置的手机运行平板的程序时,就会出现卡死的状况,将自定义的listview的去掉就恢复正常了,我的理解是使用上述的自定义的listview,进行绘制的时候,由于每次更新服务器的大量数据时,需要重新计算高度和宽度,挺耗内存,所以导致低配置的手机卡死了,有前辈如果知道的,麻烦告诉我一下,参考链接如下:http://blog.youkuaiyun.com/qinjuning/article/details/8074262
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值