获取recycleView瀑布流模式下第一个完全显示出来的View,解决获取不准问题,坑点
2017-09-28 09:59
381 查看
recycleView线性布局或其他布局可以直接用google提供的方法获取,瀑布流就比较坑了,使用google提供的布局获取不准
当时做这个主要用于瀑布流recycleView的视频自动播放,视频播放采用google的EXOPlayer
解决办法:
当时做这个主要用于瀑布流recycleView的视频自动播放,视频播放采用google的EXOPlayer
解决办法:
/** * 获取瀑布流的第一个完全显示的View * @param recyclerView * @return */ private View getItemView(RecyclerView recyclerView){ try { //计算瀑布流的第一个完全显示的item,踩坑 int[] firstVisibleItems = null; firstVisibleItems= ((StaggeredGridLayoutManager)recyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPositions(firstVisibleItems); Log.d(LogUtil.BABY_SHOW,"firstVisibleItems="+firstVisibleItems[0]+","+firstVisibleItems[1]+""); int [] firstCompleteItems=null; firstCompleteItems=((StaggeredGridLayoutManager)recyclerView.getLayoutManager()).findFirstVisibleItemPositions(firstCompleteItems); Log.d(LogUtil.BABY_SHOW,"f="+firstCompleteItems[0]+","+firstCompleteItems[1]+""); int item; //以下排序是为了防止recycleView有head,造成无法区分那个时完全显示的第一个View问题,坑坑坑,对于瀑布流,Google未提供直接调用的方法,需要自己计算 //排序 if (firstCompleteItems[0]>firstCompleteItems[1]){ int i=firstCompleteItems[0]; firstCompleteItems[0]=firstCompleteItems[1]; firstCompleteItems[1]=i; } //排序 if (firstVisibleItems[0]>firstVisibleItems[1]){ int i=firstVisibleItems[0]; firstVisibleItems[0]=firstVisibleItems[1]; firstVisibleItems[1]=i; } if(firstVisibleItems[0]>0){ item=firstVisibleItems[0]-firstCompleteItems[0]; }else if(firstVisibleItems[1]>0){ item=firstVisibleItems[1]-firstCompleteItems[1]; }else if(firstVisibleItems[0]==0 && firstVisibleItems[1]==0 && firstCompleteItems[0]==0 && firstCompleteItems[1]==0){ item=1; }else{ return null; } LogUtil.d(LogUtil.BABY_SHOW,"第一个完全显示的item="+item); View v= recyclerView.getChildAt(item); return v; }catch (Exception e){ e.printStackTrace(); return null; } }
相关文章推荐
- 利用缓存与多线程(线程池管理)加载,解决RecycleView显示较多图片时出现的卡顿问题
- Add View -> Strongly-typed view ->Model Class 显示不出来的问题解决
- 渐变toolbar,悬浮控件,scrollview和recycleview滑动冲突及显示不全问题解决
- android 获取网络数据,回传到本地用TextView显示乱码问题解决方法
- view显示出来不能完全填满window的bug解决
- word公式无法完全显示,公式和文字不对齐问题解决
- POWERBUILDER KODIGO 框架TOOLBAR不能完全显示汉字问题解决
- DIV border边框显示不完全问题的解决方法
- [转-来自啊泰]推模式下dataset1下显示的是"...未找到项目..." 问题的解决 [http://www.cnblogs.com/babyt/archive/2005/04/15/138582.html]
- (原创)Protel对话窗字体显示不完全问题解决办法(PCB)
- 解决IE7兼容模式下Extjs显示问题
- devexpress中gridcontrol中的cardview中 图片不显示的问题解决
- 解决Ubuntu下 erlang 工具库命令显示不出来的问题
- 使用JQuery解决图片自适应大小问题(比较好的解决图片从加载到完全显示的大小问题)
- java中获取路径问题完全解决
- 由于IE版本问题导致SAP的F1帮助文档显示不出来的解决办法
- DIV border边框显示不完全问题的解决方法
- SQL SERVER 2005 windows身份验证模式转为sql server验证,以及连接显示TCP/IP问题解决
- 推模式下dataset1下显示的是"...未找到项目..." 问题的解决
- OpenGL禁用深度测试 解决正投影贴图模式下集显电脑不能显示文字问题。