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程序设计有所帮助。

(0)

相关推荐

  • 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

随机推荐