可滑动控件判断是否滑到底部和顶部的方法总结
2017-01-11 17:50
267 查看
一、ListView 和GridView,判断方法相同。
二、ScrollView 和 NestedScrollView
三、WebView
四、RecyclerView
public boolean isGetTop() { if (absListView.getCount() == 0) { return true; } else if (absListView.getFirstVisiblePosition() == 0 && absListView.getChildAt(0).getTop() >= absListView.getPaddingTop()) { return true; } return false; }
public boolean isGetBottom() { int firstVisiblePosition = absListView.getFirstVisiblePosition(); int lastVisiblePosition = absListView.getLastVisiblePosition(); int count = absListView.getCount(); if (count == 0) { return true; } else if (lastVisiblePosition == (count - 1)) { View view = absListView.getChildAt(lastVisiblePosition - firstVisiblePosition); if (view != null && view.getBottom() <= absListView.getMeasuredHeight() - absListView.getPaddingBottom()) return true; } return false; }
二、ScrollView 和 NestedScrollView
public boolean isGetTop() { if (scrollView.getScrollY() <= 0) return true; else return false; }
public boolean isGetBottom() { if (scrollView.getChildCount() == 0) { return true; } if (scrollView.getScrollY() >= (scrollView.getChildAt(0).getHeight() - scrollView.getMeasuredHeight())) return true; else return false; }
三、WebView
public boolean isGetBottom() { if (webView.getScrollY() >= webView.getContentHeight() * webView.getScale() - webView.getMeasuredHeight()) return true; else return false; }
public boolean isGetTop() { if (webView.getScrollY() <= 0) return true; else return false; }
四、RecyclerView
private void initLayoutManager() { if (layoutManager == null) { RecyclerView.LayoutManager layout = recyclerView.getLayoutManager(); if (layout != null && layout instanceof LinearLayoutManager) { layoutManager = (LinearLayoutManager) layout; } } }
public boolean isGetTop() { initLayoutManager(); if (layoutManager != null) { if (layoutManager.getItemCount() == 0) { return true; } else if (layoutManager.findFirstVisibleItemPosition() == 0 && recyclerView.getChildAt(0).getTop() >= recyclerView.getPaddingTop()) { return true; } } return false; }
public boolean isGetBottom() { initLayoutManager(); if (layoutManager != null) { int count = layoutManager.getItemCount(); if (count == 0) { return true; } else if (layoutManager.findLastCompletelyVisibleItemPosition() == count - 1) { return true; } } return false; } }
相关文章推荐
- 完美实现Android ListView中的TextView的跑马灯效果
- android上改变listView的选中颜色
- CSS中的滑动门技术
- flex 控件的重要属性
- 学习Winform文本类控件(Label、Button、TextBox)
- Delphi7中Listview的常用功能汇总
- Delphi控件ListView的属性及使用方法详解
- web下载的ActiveX控件自动更新
- C#中ListView控件实现窗体代码
- NGUI实现滑动翻页效果实例代码
- WinForm实现按名称递归查找控件的方法
- C#中父窗口和子窗口之间控件互操作实例
- C#编写ActiveX网页截图控件
- Android ListView弹性效果的实现方法
- Android编程UI设计之GridView和ImageView的用法
- Android编程之Button控件用法实例分析
- Android控件之CheckBox、RadioButton用法实例分析
- Android Listview多tab上滑悬浮效果
- android中ListView数据刷新时的同步方法
- C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF