listview-关于Android的ListView问题。

问题描述

关于Android的ListView问题。

使用ListView好像很难,或者就是不能达到想要的效果。。
比如,类似于手机淘宝,美团的商品列表。
然而,作为小白的我,试着用动态添加自定义布局的方式实现类似的东西,但是做着做着又发现
了一个问题,如果添加的东西过多,会OOM。 而且上拉刷新实现起来很困难。
小弟我就想问问大家是用什么方式去实现那东西的?

解决方案

LZ应该先学学如何提问题,这个问题我就帮LZ拆分为两个问题。
问题1:ListView OOM的问题
问题2:如何实现上拉刷新

首先回答问题1:
ListView 里面有一个重要的方法叫做

 public View getView(int position, View convertView, ViewGroup parent)

这个方法里有一个convertView,这个convertView就是需要用来重用的。
假设LZ有一个ItemView的资源为

R.layout.item_view
在geView方法内部就应该这样来重用

 public View getView(int position, View convertView, ViewGroup parent){
    CustomView view;
        if(convertView==null){
            view = (CustomView) mInflater.inflate(R.layout.item_view);
        } else {
            // convertView not null reuse
            view = (CustomView) convertView;
        }
        //...
 }

这样就可以在重用View了,但是看到LZ提到还需要加载图片,那么推荐LZ去看看Picasso这个图片加载框架,github地址:http://square.github.io/picasso

再来回答问题2:
Android其实有提供一个SwipeRefreshLayout,这个可以去官方文档上面看看使用方法就可以了,然后再给LZ发PullToRefresh的一个github地址:https://github.com/chrisbanes/Android-PullToRefresh

解决方案二:

Android ListView使用问题
Android中ListView的优化问题
Android ListView的getBottom获得值问题

解决方案三:

OOM异常就是内存溢出,这个是加载的文件太大了,建议加大内存!

解决方案四:

淘宝应该是webapp吧。原生的也只能listView多套布局了。关键是控制好内存。

解决方案五:

OOM证明你管理内存存在问题(包括内存泄漏,加载图片不适当等问题),而不是加大内存就能解决的!而且ListView有重用机制,如果你管理的好,不会出现OOM。

如果是初学者,建议打好基础,积累经验,这些问题都会慢慢会理解的~
例如现在你可以把相关代码贴出来让大神指点下,你就会慢慢了解ListView

解决方案六:

内存溢出,是估计你没用viewholder,导致创建了大量的视图,上拉刷新,自己不会写的话,网上很多来源的,都给你做好了,还发什么愁

解决方案七:

给你几个建议吧
1 :使用第三方控件,可以去git上下载
2 :布局的复用,加上缓存基本差不多了

解决方案八:

用XListView吧!效果很好的

解决方案九:

用XListView吧!效果很好的

时间: 2024-12-05 07:24:28

listview-关于Android的ListView问题。的相关文章

Android的ListView

项目源码下载 https://github.com/Wang-Jun-Chao/AndroidProjects ListView 就是用来显示一行一行的条目的 MVC结构 M:model模型层,要显示的数据 ----people集合 V:view视图层,用户看到的界面 ----ListView c:control控制层,操作数据如何显示 ----adapter对象 每一个条目都是一个View对象 BaseAdapter 必须实现的两个方法 第一个 () { people.size(); } 第二

listview 显示 android

问题描述 listview 显示 android 为什么listview显示数据库数据,第一行可以直接显示,当上下滑动后其余行也能正常显示? 解决方案 android listView 高亮显示在Android的Listview中显示多种视图在Android的Listview中显示多种视图 解决方案二: 这是说什么呢,完全看不懂 解决方案三: 滑动时,会取position索引处的数据,填充到对应的item视图中 解决方案四: 问题问的太模糊了!都不知道问的什么东东! 解决方案五: 你的问题应该是

Android实现ListView过滤功能,继承于BaseAdapter,非ArrayAdapter

其实实现ListView过滤功能最方便的便是使用ArrayAdapter,里面自带的 getFilter()方法能很方便的实现此功能,但是在实际的开发中,一般都是继承于 BaseAdapter.还有一种是利用控件AutoComplete,这种方式只是在输入框的下方 重新显示一个列表,显然,很多时候这两种方式也满足不了我们的要求. 在Activity中定义一个类,让它实现TextWatcher接口,然后再onTextChanged 方法中去过滤.然后常见相应的Pattern和match,来判断传入

android中ListView数据刷新时的同步方法

  本文实例讲述了android中ListView数据刷新时的同步方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

android实现listview分页的方法

  本文实例讲述了android实现listview分页的方法.分享给大家供大家参考.具体分析如下: 最近做了下listview的分页,跟WEB上的分页是一个意思,需要那几个分页参数,不同的是sqlite中分页的查询语句,简便的方法需要用Limit,Offset关键字,前者是查询每页展示的记录数,后者是越过多少记录数,说得明白点就是忽略前面多少行记录之后,取多少行记录 我分页采用了一个重要的类Page,通过封装Page类,做为参数传递进来,返回出去也是个Page对象 ? 1 2 3 4 5 6

Android为ListView的Item设置不同的布局

  MainActivity如下: package cc.testlistview; import java.util.ArrayList; import java.util.HashMap; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import andr

Android中ListView绑定CheckBox实现全选增加和删除功能(DEMO)_Android

ListView控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adapter的用法,加了很多的判断等等等等-.我们先来看看实现的效果吧! 好的,我们新建一个项目LvCheckBox 我们事先先把这两个布局写好吧,一个是主布局,还有一个listview的item.xml,相信不用多说 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/

Android自定义ListView实现仿QQ可拖拽列表功能_Android

我们大致的思路,其实是这样子的,也是我的设想,我们可以先去实现一个简单的ListView的数据,但是他的Adapter,我们可以用系统封装好的,然后传递进去一个实体类,最后自定义一个listview去操作,所以我们先把准备的工作做好,比如? list_item.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.a

Android的ListView多选删除操作实现代码_Android

最近尝试做了个listview的多选demo,网上看其他人的例子感觉不是很难,自己动手做了下,各种细节问题,没那么简单啊.既然做了,简单写个笔记记录下. 练手demo,命名笔记乱,不要介意哦. 主界面布局activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/to

Android实现ListView左右滑动删除和编辑_Android

有时候,为了实现项目中的需求,完成设计好的用户交互体验,不的不把这些View重新改造成自己想要的效果. Android原生的ListView是不支持左右滑动的,但是看到微信电话本上,联系人可以左右滑动进行操作的,就通过自己的设想和思路,并加以实现了. 思路: 1.获取到手指放到屏幕时的x,y位置,并判断点击的处于ListView的那个position. 2.判断滑动的方向,如果是上下方向,touch事件就交给ListView处理:如果是左右方向,就禁止ListView进行滑动. 3.根据手指的移