• 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
    
    		}
    	};





  • 相关阅读:
    统计字符串中每个字母出现的次数
    三次握手和四次挥手
    select后面不能包含group by 后面没有的列
    常用adb命令
    replace和replaceAll的区别
    java统计一个字符串中某个字串出现的次数
    大厂如何解决分布式事务
    ADB 用法大全
    PBN飞越转弯Flyover衔接TF、CF航段保护区组图
    PBN旁切转弯保护区组图
  • 原文地址:https://www.cnblogs.com/james1207/p/3343414.html
Copyright © 2020-2023  润新知