Android简单记录和恢复ListView滚动位置的方法
本文实例讲述了Android简单记录和恢复ListView滚动位置的方法。分享给大家供大家参考,具体如下:
有时候我们需要记录当前ListView滚动到的位置,重新加载的时候要回到原位,不罗嗦,给出代码:
//列表滚动 private OnScrollListener ScrollLis = new OnScrollListener() { @Override public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) { } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if(scrollState==OnScrollListener.SCROLL_STATE_IDLE){ ListPos=list.getFirstVisiblePosition(); //ListPos记录当前可见的List顶端的一行的位置 } } };
接下来就是还原位置,放在ListView加载之后:
list.setSelection(ListPos);
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
相关推荐
-
Android GridView实现滚动到指定位置的方法
当一个列表项目很多,并且每个项目可以进入到其它Activity或者Fragment时,保存之前列表的位置是一个比较不错的功能, 今天研究了一下怎么保存浏览位置,发现GridView和它的父类中有4个相关的方法: 复制代码 代码如下: public void smoothScrollToPosition (int position) 滚动到position指定的位置,api level 11之下可用 *当你滚动完后,返回列表,能正常滚动,但是你再次从列表的项目返回后,滚动失效,就是只能滚动一次,我
-
保存ListView上次的滚动条的位置实例(必看)
如下所示: private int select_id = 0; //定义个全局变量 @Override public void onStop() { super.onStop(); select_id = list_view.getSelectedItemPosition();//点击列表的时候,保存位置 } @Override public void onResume() { super.onResume(); view.setSelection(select_id);//关闭画面,回到li
-
Android ListView滚动到指定的位置
本文介绍的关于ListView移动到指定位置有两种方法,下面话不多说,直接来看示例代码: listview.setSelection(position); listview.smoothScrollToPosition(position); 第一种方法没有滚动效果,直接跳到指定位置,第二种方法是有滚动效果的. 但是,在是用的时候,你会发现第二种方法没有效果,甚至都没有移动,其实这个问题很好解决,只要在新线程里是用就可以了 listview.post(new Runnable() { @Overr
-
android开发实现列表控件滚动位置精确保存和恢复的方法(推荐)
Android开发经常要对列表的滚动位置进行保存和恢复,网上也有很多关于此功能的方法文章,但绝大多数都只能保存恢复到某一行,对于滚动到半行的情况不能精确的恢复.也有很多文章介绍了好几种方法,也说某些方法能够精确的控制,但实际上根本不能实现.还有些介绍了很多玄乎且非常复杂的方法,但也没看到能完整实现的代码. 经过一段时间的研究测试,下面的代码可以完美的实现列表滚动位置的精确保存和恢复,而且只是在原来记忆到行位置的基础上增加了2行代码而已. 具体见下面代码和注释: //保存位置: int posit
-
android 实现ScrollView自动滚动的实例代码
有时候需要动态添加数据,屏幕显示满了,数据需要滚动展示.这里主要弄懂scrollTo(0, off)方法的含义喊用法. 含义不说了,大概意思就这样. 下面来看他的用法: 复制代码 代码如下: private void searchResultShow() { TextView textView = new TextView(AFSearchActivity.this); textView.setText("Text View "); Linear
-
Android实现字幕滚动的方法
本文实例介绍了安卓Android实现字幕滚动效果的方法.主要是一个现成的Java类文件实现的,该程序由Android达人Tony编写,本次是转发,还望原作者Tony不要介意.这个Android字幕滚动类的自定义功能比较多,可定义当前滚动到结尾时的停顿时间,单位:毫秒,还可设置当前的滚动速度,值越小,速度越快. 主要实现代码如下: package com.tony.autoscroll; import android.content.Context; import android.os.Handl
-
Android简单记录和恢复ListView滚动位置的方法
本文实例讲述了Android简单记录和恢复ListView滚动位置的方法.分享给大家供大家参考,具体如下: 有时候我们需要记录当前ListView滚动到的位置,重新加载的时候要回到原位,不罗嗦,给出代码: //列表滚动 private OnScrollListener ScrollLis = new OnScrollListener() { @Override public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3)
-
Android实现带有边框的ListView和item的方法
本文实例讲述了Android实现带有边框的ListView和item的方法.分享给大家供大家参考,具体如下: 想为ListView和item四周添加边框有两种方法: 1.贴一张带有边框效果的背景图 2.自定义Draw的方法 第一种方法较第二种方法更耗系统资源,但是用法简单,只需要一张图设置为相应控件的背景即可,而第二种灵活性好些. 这次是实现带有边框的ListView和item,为此写个简单Demo 学习学习 先看下Demo运行效果吧 下面是主要代码,主要是用到Canvas.drawLine(.
-
Android简单判断某个APK是否已经安装的方法
本文实例讲述了Android简单判断某个APK是否已经安装的方法.分享给大家供大家参考,具体如下: privateboolean isAppInstalled(String uri){ PackageManager pm = getPackageManager(); boolean installed =false; try{ pm.getPackageInfo(uri,PackageManager.GET_ACTIVITIES); installed =true; }catch(Package
-
Android简单修改原有应用和添加应用的方法
本文实例讲述了Android简单修改原有应用和添加应用的方法.分享给大家供大家参考,具体如下: 第一部分:如何修改原有的Android应用 1. 首先新建一个Android工程,加载自己的Java文件和资源文件. 2. 在自己的android工程初步调试成功以后,把该工程的java文件和资源文件复制到联系人对应的java文件和资源文件目录. 3. 在linux下执行以下命令,编译人联系人模块,把资源文件编译到联系人目录中 . build/envsetup.sh mmm packages/apps
-
vue中进入详情页记住滚动位置的方法(keep-alive)
> 有时业务提出这样一个需求 就是从商品页面进入到列表详情页 要保存当前滚动的位置,这里我就想到了keep-alive 1.首先在路由中引入需要的模块 { path: '/scrollDemo', name: 'scrollDemo', meta: { keepAlive: true // 需要缓存 }, component: resolve => { require(['../view/scrollDemo.vue'], resolve) } } 2.在App.vue中设置缓存组件 <
-
Android简单实现一个颜色渐变的ProgressBar的方法
今天看一个教程,看到一个颜色渐变的ProgressBar,觉得有点意思,所以记录一番. 下面这个是效果图 颜色渐变的ProgressBar 看到效果图可能会给人一种使用了高端技术的感觉,其实这个没有那么高深,我们只是简单改变了ProgressBar的样式即可实现,下面说说实现方式. 首先我们简单分析一下: 1 . 上面的样式只是实现了颜色渐变,但它旋转和呈现的方式仍然是一个圆形的ProgressBar. 2 . 这个ProgressBar实现了颜色渐变,我们就需要用到gradient,这个也比较
-
Android精确测量文本宽高及基线位置的方法
前言 笔者最近在做一款弹幕控件,里面涉及到绘制文本,以及文本边框.而绘制文本边框需要知道文本的左边位置,上边位置,以及文本的宽高. 通常来说,使用 Canvas 绘制文本,可以通过画笔 Paint 来设置文字的大小.但是画笔的大小与文字的宽高并无直接关系. 大家应该能说上几种测量文字宽高的方法,如: 方案1. 通过 Paint 的 measureText 方法,可以测量文字的宽度 方案2. 通过获取 Paint 的 FontMetrics, 根据 FontMetrics 的 leading, a
-
Android使用控件ImageView加载图片的方法
在 Android 加载图片一般使用 ImageView,这里简单记录一下这个控件的使用方法. 最简单就是在 xml 里直接使用 ImageView 标签: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="
-
Android编程记录ListView标记行状态的方法
本文实例讲述了Android编程记录ListView标记行状态的方法.分享给大家供大家参考,具体如下: 小Demo无什么特别之处,最特别的就是尽量少用notifyDataSetChanged,开销太大了,当然使用是会省不少工的,不过有时候还是会遇到别的问题的,项目经验表示会有这个可能性的,废话不多少了,直接上关键代码. @Override public void onItemClick(AdapterView<?> adapterView, View view, int pos, long a
随机推荐
- oracle分区索引的失效和重建代码示例
- ASP 连接Access数据库的登陆系统
- Oracle 11g 客户端的安装和配置的图文教程
- 浅谈python for循环的巧妙运用(迭代、列表生成式)
- ASP.Net下载大文件的实现方法
- 得到当前行的值的javascript代码
- .NET中用ICSharpCode.TextEditor自定义代码折叠与高亮
- php检查日期函数checkdate用法实例
- php连接mssql数据库的几种方法
- 关于IE中getElementsByClassName不能用的问题解决方法
- 在asp中通过getrows实现数据库记录分页的一段代码
- Android获取周围WIFI热点服务
- php版微信自动登录并获取昵称的方法
- Ajax的简单实用实例代码
- ajax与302响应代码测试
- MySql官方手册学习笔记1 MySql简单上手
- jQuery实现点击关注和取消功能
- jQuery:delegate中select()不起作用的解决方法(实例讲解)
- java application maven项目打自定义zip包实例(推荐)
- Python无损音乐搜索引擎实现代码