您的位置:首页 > 移动开发 > Android开发

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

2016-05-16 13:25 579 查看
     项目中,有这样的需求,需要在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.csdn.net/qinjuning/article/details/8074262
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android listview