标签:io os java on 数据 log bs 代码 as
比方说你在群里聊天的时候,一条条item刷刷的出现,然后你要查看前面的内容item,然后滚动了超出一屏的内容,也就是最后一条消息不在该屏幕中。还没有看完然后同学们又发出一条条消息,于是ListView跳到最后一条消息,这时候你仍然想知道前面的聊天内容,是不是有点郁闷,这就是ListView默认的滚动方式。
当然这是可以修改的:
编写代码使ListView受Onscrolllistener监听:
[java] view plaincopyprint?private boolean isTranscriptMode = true;
private boolean isTranscriptMode = true;
[java] view plaincopyprint?mListView.setOnScrollListener(this);
mListView.setOnScrollListener(this);
[java] view plaincopyprint?@Override
public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { case OnScrollListener.SCROLL_STATE_IDLE: Log.d(TAG, "idle"); if (view.getLastVisiblePosition() == (view.getCount() - 1)) { if(isTranscriptMode == false) { mListView.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);//滚动方式 Log.d(TAG, "set TRANSCRIPT_MODE_ALWAYS_SCROLL"); isTranscriptMode = true; } }else{ if(isTranscriptMode == true) { Log.d(TAG, "set TRANSCRIPT_MODE_DISABLED"); mListView.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_DISABLED);//不滚动,数据item仍然增加 isTranscriptMode = false; } } break; case OnScrollListener.SCROLL_STATE_FLING: Log.d(TAG, "filing"); break; case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL: Log.d(TAG, "touche"); break; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { }
标签:io os java on 数据 log bs 代码 as
原文地址:http://my.oschina.net/yuanxulong/blog/349454