android群英传笔记--第四章--ListView使用技巧(一)
2016-11-01 23:43
423 查看
设置项目间分割线
隐藏ListView的滚动条
取消ListView的Item点击效果
设置ListView需要显示在第几项
遍历所有条目
ListView的监听
mListView.setOnTouchListener(){}
滚动监听OnScrollListener
具有弹性的ListView 仿iOS效果
android:divider="android:color/darker_gray" android:dividerHeight="10dp" android:divider="@null"
隐藏ListView的滚动条
android:scrollbars="none"
取消ListView的Item点击效果
android:listSelector="#00000000" android:listSelector="@android:color/transparent"
设置ListView需要显示在第几项
listView.setSelection(N);//需要显示的第N个Item //实现平滑移动 mListView.smoothScrollBy(distance,duration); mListView.smoothScrollByOffset(offset); mListView.smoothScrollToPostion(index);
遍历所有条目
for(int i=0;i<mListView.getChildCount;i++){ View view=mListView.getChildAt(i); }
ListView的监听
mListView.setOnTouchListener(){}
mListView.setOnTouchListener(myTouchListener ){} View.OnTouchListener myTouchListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mFirstY = event.getY(); break; case MotionEvent.ACTION_MOVE: mCurrentY = event.getY(); if (mCurrentY - mFirstY > mTouchSlop) { direction = 0;// down } else if (mFirstY - mCurrentY > mTouchSlop) { direction = 1;// up } if (direction == 1) { if (mShow) { toolbarAnim(1);//hide mShow = !mShow; } } else if (direction == 0) { if (!mShow) { toolbarAnim(0);//show mShow = !mShow; } } break; case MotionEvent.ACTION_UP: break; } return false; } };
滚动监听OnScrollListener
mListView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState){ case AbsListView.OnScrollListener.SCROLL_STATE_IDLE://滑动停止时 break; case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL://正在滚动 break; case AbsListView.OnScrollListener.SCROLL_STATE_FLING://惯性滑动 break; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { //滚动时一直调用 //firstVisibleItem 第一个能看见的Item from 0 //当前能看见的item总数 //totalItemCount整个llistview的Item总数 } }); //判断滚动到最后一行 if(firstVisibleItem+visibleItemCount==totalItemCount && totalItemCount>0){ //滚动到最后一行 } //判断滑动方向 if(firstVisibleItem>lastVisibleItemPosition){ //上滑 }else if(firstVisibleItem<lastVisibleItemPosition){ //下滑 } lastVisibleItemPosition =firstVisibleItem; //获得可视区域内最后一个item的id mListView.getLastVisiblePosition(); mListView.getFirstVisiblePosition();//第一个
具有弹性的ListView 仿iOS效果
public class FlexibleListView extends ListView { private static int mMaxOverDistance = 50; private Context mContext; public FlexibleListView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.mContext = context; initView(); } public FlexibleListView(Context context, AttributeSet attrs) { super(context, attrs); this.mContext = context; initView(); } public FlexibleListView(Context context) { super(context); this.mContext = context; initView(); } private void initView() { DisplayMetrics metrics = mContext.getResources().getDisplayMetrics(); float density = metrics.density; mMaxOverDistance = (int) (density * mMaxOverDistance); } @Override protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, mMaxOverDistance, isTouchEvent); } }
相关文章推荐
- android群英传笔记--第四章--ListView使用技巧(二)
- android群英传笔记--第四章--ListView使用技巧(一)
- android群英传笔记--第四章--ListView使用技巧(二)
- android群英传笔记--第四章--ListView使用技巧(二)
- android群英传笔记--第四章--ListView使用技巧(一)
- android群英传笔记--第四章--ListView使用技巧(一)
- android群英传笔记--第四章--ListView使用技巧(二)
- android群英传笔记--第四章--ListView使用技巧(二)
- android群英传笔记--第四章--ListView使用技巧(一)
- android群英传笔记--第四章--ListView使用技巧(二)
- android群英传笔记--第四章--ListView使用技巧(二)
- android群英传笔记--第四章--ListView使用技巧(二)
- android群英传笔记--第四章--ListView使用技巧(一)
- android群英传笔记--第四章--ListView使用技巧(一)
- Android群英传第四章笔记·ListView使用技巧
- android群英传笔记--第四章--ListView使用技巧(一)
- android群英传笔记--第四章--ListView使用技巧(一)
- android群英传笔记--第四章--ListView使用技巧(二)
- 阅读徐宜生《Android群英传》的笔记——第4章 ListView 使用技巧——到4.1.7
- Android群英传学习——第四章、ListView使用技巧