Mar*_*kus 5 android scroll smooth-scrolling android-layout android-recyclerview
我正在开发一个看起来像这样的应用程序:

RecyclerView使用自定义LayoutManager,其自定义实现为"scrollVerticallyBy"
首先.recyclerview滚动黄油平滑并且以低于所需的16毫秒的方式呈现.我想我可以在Nexus 5上大约5毫秒.
但是,我还希望能够滚动RecyclerView触摸它上方的View(它是RelativeLayout).
这是问题所在:
1)如果我只是转发onTouchEvents,滚动是黄油平滑的.但是,只有在手指触摸屏幕时,才会调用RecyclerView.fling(...)并且只能滚动.没有投掷感觉非常尴尬.
@Override
public boolean onTouchEvent(MotionEvent event) {
return mRecyclerView.onTouchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
2)如果我在RecyclerView中覆盖.fling(...),我可以使用Scroller进行"投掷"工作.这有效,但确实会导致一些奇怪的大滞后.
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (mScroller.computeScrollOffset()) {
Log.d("RecyclerView", "(ondraw) Y: " + mScroller.getCurrY());
scrollBy(0, mScroller.getCurrY()- mLastY);
mLastY = mScroller.getCurrY();
postInvalidateDelayed(16); // 60 Hz
}
}
@Override
public boolean fling(int velocityX, int velocityY) {
mLastY = 0;
mScroller.fling(0, 0, velocityX, velocityY, 0, 0, -10000 ,10000);
return true;
}
Run Code Online (Sandbox Code Playgroud)
我不确定这样做的正确方法是什么.我觉得如果我没有覆盖.fling()并强制我的应用程序通过使用Scroller重复调用scrollBy()滚动工作方式不同.
我怀疑这可能与"startSmoothScroll"和"smoothScrollToPosition"有关,我还没有覆盖.老实说,我不知道smoothscrolling是什么,但这听起来与这个问题有关:)
| 归档时间: |
|
| 查看次数: |
1520 次 |
| 最近记录: |