- 浏览: 1220369 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
这个例子主要实现ListView当滚动完毕所有可见Item后,继续加载未显示item例子,主要通过onScroll的监听来实现:
package com.example.listview; import android.app.ListActivity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.AbsListView.OnScrollListener; import android.widget.LinearLayout.LayoutParams; public class ListViewLoading extends ListActivity implements OnScrollListener { private ProgressBar progressBar; private LayoutParams WClayoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); private LayoutParams FFlayoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); private ListViewAdapter adapter = new ListViewAdapter(); class ListViewAdapter extends BaseAdapter { int count = 5; public int getCount() { return count; } public Object getItem(int pos) { return pos; } public long getItemId(int pos) { return pos; } public View getView(int pos, View v, ViewGroup p) { TextView view = new TextView(ListViewLoading.this); view.setText("The item position " + pos); view.setTextSize(20f); view.setHeight(80); return view; } } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.HORIZONTAL); progressBar = new ProgressBar(this); progressBar.setPadding(0, 0, 15, 0); layout.addView(progressBar, WClayoutParams); TextView textView = new TextView(this); textView.setText("数据加载中..."); textView.setGravity(Gravity.CENTER_VERTICAL); layout.addView(textView, FFlayoutParams); layout.setGravity(Gravity.CENTER); LinearLayout loadingLayout = new LinearLayout(this); loadingLayout.addView(layout, WClayoutParams); loadingLayout.setGravity(Gravity.CENTER); ListView listView = getListView(); listView.addFooterView(loadingLayout); setListAdapter(adapter); listView.setOnScrollListener(this); // registerForContextMenu(listView); } private int lastItem = 0; // 每次ListView被滚动时调用 @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub if (lastItem == adapter.count && scrollState == OnScrollListener.SCROLL_STATE_IDLE) { adapter.count += 3; adapter.notifyDataSetChanged(); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { lastItem = firstVisibleItem + visibleItemCount - 1; System.out.println("firstVisibleItem:" + firstVisibleItem); System.out.println("visibleItemCount:" + visibleItemCount); } }
发表评论
-
ListView处理滚动和点击事件
2011-11-14 18:18 4362这段代码可以实现点击和滚动ListView事件分割处理: ... -
Android-sharedUserId数据权限 android:sharedUserId
2011-04-07 21:38 2036Android给每个APK进程分配一个单独的用户空间,其man ... -
标准TabHost的应用
2011-01-28 23:11 2228public class Activity01 exten ... -
WebView使用总结3(应用函数与JS函数互相调用)
2011-01-25 20:13 4278完成java文件: public class Method ... -
WebView使用总结2(加载HTML内容形式的String)
2011-01-25 19:57 21181接着上篇: 6.通过字符串 ... -
WebView使用总结1
2011-01-25 19:35 37801.当只用WebView的时候,最先注意的当然是在配置文件中添 ... -
添加桌面快捷方式
2011-01-18 21:12 1416给一个完整的代码片段: /**Launcher的recei ... -
ListView的滑动效率问题
2010-12-30 21:15 3406如何提高ListView的滚动速度,ListView的 ... -
AnalogClock的使用
2010-10-12 15:41 1960简单的main.xml就可以搞定: <?xml ve ... -
ExpandListView自动更新(以前发到eoe,现在整理下)
2010-09-26 13:52 72551.直接上界面代码: package com.exampl ... -
SurfaceView的最基础代码段
2010-09-17 14:29 13171.Activity中引用: setContentView ... -
Gallery的学习
2010-09-09 14:42 1120代码如下: Gallery g = (Gallery) f ... -
EditText的一些使用注意点
2010-09-06 14:25 70201.如何对EditText进行setText()的时候使其自动 ... -
ListView动态更新item的例子
2010-09-03 20:57 74461.ListViewUpdate.java文件: packa ... -
ListView点选背景设置
2010-09-02 07:20 14291.构造一个ListView: String[] ... -
OptionMenu的套用代码
2010-08-14 22:11 1480package com.example; impor ... -
一个简单的Spinner使用
2010-08-14 22:08 1195package com.example; impor ... -
AlertDialog显示格式化时间
2010-08-02 21:58 1716这个例子进一步学习AlertDialog: private ... -
CheckBox组件的熟悉
2010-07-27 20:52 1477在xml中可以这样定义: <CheckBox and ... -
AlertDialog的菜单以及MapView使用
2010-07-18 21:47 2310这个例子主要可以学习到: 1.使用AlertDialog显示菜 ...
相关推荐
本项目实现了ListView的两个关键特性:块状滚动条(类似微博、QQ微博)和分批加载数据(即无限滚动或下拉加载更多)。下面将详细讲解这两个功能的实现原理及步骤。 **一、ListView自定义滚动条** 1. **创建自定义...
本文将深入探讨如何在Android中利用ListView实现数据的异步分批加载,以提高用户体验并优化性能。 首先,我们需要理解异步加载的概念。异步加载是指在不阻塞主线程的情况下,后台处理数据加载任务,确保用户界面的...
- **分页**:如果数据源支持分页,考虑分批加载数据,以减小内存压力。 通过合理利用ListView的虚模式,你可以显著提升大量数据的显示效率,提供流畅的用户体验。同时,注意适时地调整和优化代码,以适应不同场景下...
- **性能优化**: 大文件或大量数据导入/导出时,应考虑分批处理,避免一次性加载所有数据导致内存占用过高。 - **用户交互**: 提供进度指示器或取消功能,提升用户体验。 - **错误处理**: 捕获可能出现的文件读写...
3. 分批加载:如果数据量极大,可以考虑使用Header/Footer来实现分页加载,或者使用下拉刷新和上拉加载更多功能。 六、ListView的其他特性 1. 分割线:通过android:divider属性设置分割线,android:dividerHeight...
3. 分批加载数据:当ListView滚动到底部时,通过懒加载机制加载更多数据。 四、ListView的动画效果 1. 添加进入和退出动画:通过setAnimation方法为ListView添加动画,可以是系统提供的动画资源,也可以自定义动画...
- 开启ListView的分批加载功能(setCacheColorHint()),缓存部分已绘制但未显示的item,减少滑动时的重绘。 - 使用convertView机制,重用已经滑出屏幕的item视图,进一步提升性能。 5. **点击事件处理**: - ...
最后,关于性能优化,除了ViewHolder模式外,还可以使用ListView的分批加载(OnScrollListener)来避免一次性加载所有数据,降低内存消耗。当用户滚动到列表底部时,动态加载更多数据。 ```java listView....
- 分批加载数据(下拉刷新、上拉加载更多):避免一次性加载大量数据导致的内存消耗和卡顿。 6. **自定义适配器** 如果ArrayAdapter和SimpleAdapter无法满足需求,可以创建自定义适配器继承自BaseAdapter。自定义...
- 分批处理:如果数据量大,考虑分批读取,避免一次性加载大量数据导致内存压力。 5. **事件处理**: - ListView控件通常会涉及到用户交互,如点击、选择等,需要通过事件处理程序进行响应。例如,`...
- **分批加载**:如果数据量过大,可以采用下拉刷新、上拉加载更多等方式分批加载数据。 - **Header和Footer**:需要在列表头部或尾部添加固定视图时,可以使用`addHeaderView()`和`addFooterView()`方法。 7. **...
7. **ListView的优化**:除了ViewHolder,还可能涉及到诸如分批加载(LazyLoading)、下拉刷新(SwipeRefreshLayout)和上拉加载更多(LoadMore)等优化技巧,以提升大型数据集的显示效果。 8. **...
懒加载的核心思想是分批加载资源,只加载用户当前需要看到的部分,而不是一次性加载所有数据。在ListView中,这意味着我们不会预先加载所有图片,而是等到图片所在的ListView项即将显示时才开始加载。这样可以显著...
3. 分批加载:通过监听ListView的滚动事件,当用户接近底部时,动态加载更多数据。 六、ListView的其他特性 1. 分割线:通过设置`android:divider`和`android:dividerHeight`属性,可以添加分割线。 2. 选择模式...
2. 分批加载数据:使用OnScrollListener监听滚动事件,实现下拉刷新和上拉加载更多功能。 五、ListView的滚动优化 1. 开启硬件加速:在清单文件中设置`android:hardwareAccelerated="true"`,开启Activity的硬件...
在安卓开发中,ListView是一个非常重要的组件,常用于展示大量数据列表。这个压缩包"安卓Android源码——ListView停止滚动开启下载图片.rar"显然包含了关于如何在ListView滚动时暂停图片下载,停止滚动后再继续下载...
除了ViewHolder模式,还可以通过设置ListView的缓存颜色标识(cacheColorHint)、启用分批加载(setFastScrollEnabled)等方式来优化性能。 在“ListView入门”这个压缩包文件中,可能包含了实现上述功能的示例...
同时,可以启用ListView的分批加载(例如使用`AbsListView.OnScrollListener`)以减少内存消耗。 这就是在Android中使用ListView的基本步骤。你可以根据实际需求对Adapter进行扩展,比如添加点击事件监听器,或者...
总之,Android中的Listview下拉刷新和上拉加载更多是提高用户体验的关键特性,它们通过分批加载数据,减少了初始加载时间,同时也提供了流畅的交互体验。开发者可以通过自定义ListView组件、适配器以及监听滑动事件...