在开发机顶盒项目中,使用recycleview的GridLayout的时候发现一个问题,因为我的item是一个图片在上,文字在下的布局,遥控器控制列表在向下滚的时候,到达最后一行,无法显示item的文字。一开始,我觉得可能是我把焦点落在item中的头像上导致的,但是后来我将焦点落在整个item上还是会这样。所以我就想从recycleview的向下滚动的距离处理,滚动距离拉大。附代码如下:
private void setScrollListener() { int mScreenHeight = getResources().getDisplayMetrics().heightPixels; fhRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); View focusedChild = fhRecycler.getFocusedChild(); if (null == focusedChild) { return; } int scrollDistance; if (dy > 0) { scrollDistance = focusedChild.getTop() + focusedChild.getHeight() / 2 - mScreenHeight / 2; } else { scrollDistance = focusedChild.getBottom() - focusedChild.getHeight() / 2 - mScreenHeight / 2; } fhRecycler.smoothScrollBy(0, scrollDistance); } }); }