zoukankan      html  css  js  c++  java
  • Android listView scroll 恢复滚动位置

    相信大家尝试过许多方法恢复滚动位置,本人也找了许多方法,唯有这个方法好用,下面把代码贴出来

    声明两个变量

    private int mPosition;
    private int lvChildTop;

    pause , resume方法

            @Override
    	public void onPause() {
    		// TODO Auto-generated method stub
    		super.onPause();
    
    		SharedPreferences mySharedPreferences = activity.getSharedPreferences(MY_PREFS, Activity.MODE_PRIVATE);
    		SharedPreferences.Editor edit = mySharedPreferences.edit();
    		edit.putInt("mPositionChildTop", lvChildTop);
    		edit.putInt("mPosition", mPosition);
    
    		edit.commit();
    	}
    
    	@Override
    	public void onResume() {
    		// TODO Auto-generated method stub
    		super.onResume();
    
    		SharedPreferences mySharedPreferences = activity.getSharedPreferences(MY_PREFS, Activity.MODE_PRIVATE); // MY_PREFES 是声明的字符串
    		lvChildTop = mySharedPreferences.getInt("mPositionChildTop", 0);
    		mPosition = mySharedPreferences.getInt("mPosition", 0);
    		listMessage.setSelectionFromTop(mPosition, lvChildTop); // listMessage 是listview ,
    	}


    listview 的监听事件

    private OnScrollListener lvScrollListener = new OnScrollListener() {
    
    		@Override
    		public void onScrollStateChanged(AbsListView view, int scrollState) {
    			// TODO Auto-generated method stub
    			// 不滚动时保存当前滚动到的位置
    			if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
    				mPosition = listMessage.getFirstVisiblePosition();
    				View v = listMessage.getChildAt(0);
    				lvChildTop = (v == null) ? 0 : v.getTop();
    			}
    		}
    
    		@Override
    		public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    			// TODO Auto-generated method stub
    
    		}
    	};





  • 相关阅读:
    前端安全【面试】
    防xss攻击
    前端工程化
    前端项目构建——运维
    react入门
    OpenGL Windows 窗口程序环境搭建
    Django 列的自定义显示
    设计模式之 SOA面向服务的体系
    设计模式之Builder建造者模式 代码初见
    设计模式之Factory工厂模式的好处
  • 原文地址:https://www.cnblogs.com/james1207/p/3343414.html
Copyright © 2011-2022 走看看