在我的项目中,我使用一个RecyclerVIEw,我只想通过调用LayoutManager的startSmoothScroll()方法进行滚动:
private fun next(){ val layoutManager = pager.layoutManager as BattlePageLayoutManager layoutManager.startSmoothScroll(smoothScroller(layoutManager.findFirstVisibleItemposition() + 1)) layoutManager.finishScroll()}
我不希望用户能够手动滚动,例如. G.通过刷卡.
我已经尝试通过重写父FrameLayout的onIntercepttouchEvent()方法来实现这一点.
overrIDe fun onIntercepttouchEvent(ev: MotionEvent): Boolean { if (ev.actionMasked == MotionEvent.ACTION_DOWN){ startClickTime = System.currentTimeMillis() startX = ev.x startY = ev.y } val allowEvent = (System.currentTimeMillis() - startClickTime) < 1000 && (startX-ev.x).absoluteValue < 15 && (startY-ev.y).absoluteValue < 15 return !allowEvent }
基本上可以正常工作,但是发生了两次双击VIEw用户便可以自己滚动的情况.
您还有其他想法可以解决吗?
最佳答案您是否尝试在LayoutManager中覆盖canScrollVertically()方法?mLayoutManager = new linearlayoutmanager(getActivity()) { @OverrIDe public boolean canScrollVertically() { return false; }};
编辑:
创建您自己的RecyclerVIEw实现,该实现在滚动执行时禁用触摸事件.然后,您必须更改xml文件中的RecyclerVIEw类,并使用它来更改Fragment / Activity.
在这里找到Kotlin的示例
class MyRecyclerVIEw : RecyclerVIEw { constructor(context: Context) : super(context) {} constructor(context: Context,attrs: AttributeSet?) : super(context,attrs) {} constructor(context: Context,attrs: AttributeSet?,defStyle: Int) : super(context,attrs,defStyle) {} overrIDe fun onIntercepttouchEvent(e: MotionEvent): Boolean { return if (scrollState != RecyclerVIEw.SCRolL_STATE_IDLE) false else super.onIntercepttouchEvent(e) }}
而在Java中
public class MyRecyclerVIEw extends RecyclerVIEw { public MyRecyclerVIEw(Context context) { super(context); } public MyRecyclerVIEw(Context context,@Nullable AttributeSet attrs) { super(context,attrs); } public MyRecyclerVIEw(Context context,@Nullable AttributeSet attrs,int defStyle) { super(context,defStyle); } @OverrIDe public boolean onIntercepttouchEvent(MotionEvent e) { if(getScrollState() != SCRolL_STATE_IDLE) return false; return super.onIntercepttouchEvent(e); }}
总结 以上是内存溢出为你收集整理的限制用户在RecyclerView中滚动 全部内容,希望文章能够帮你解决限制用户在RecyclerView中滚动 所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)