我有tablayout viewpager,里面ViewPager I'hv它正在创造一个RecyclerView片段,Recyclerview与刷卡左/右
在RecyclerVIew鱼子项目我已经创建的水平滚动型,用于获取向左扫/正确的运动,
基本上我想向左滑动该行只有75%的屏幕,然后显示滑动式视图,
我也用的RecyclerView
ItemTouchHelper
但刷卡完整的行(100%刷卡行),
我知道有创建刷卡左,右的手势在谷歌可用库,
但所有这些工作不正常,因为当我们在刷卡项目recyclerview,有时倒是去ViewPager因此页面获得刷卡我不想即,
所以,我用HorizontalScrollView,但问题是,我无法检测HorizontalScrollView的触摸听者内刷卡方向,
其实我们想一定量后自动滚动,如果滚动上HorizontalScrollView
,
下面是我尝试过的代码。
holder.scrollContainer.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int scroll1st = 0;
int scroll2nd = 0;
if(event.getAction() == MotionEvent.ACTION_DOWN){
scroll1st = holder.scrollContainer.getScrollX();
Log.d("SCROLL", "Scroll down callded: amt is: " + holder.scrollContainer.getScrollX());
mDataSet.get(position).isFirstSwipe = false;
} else if (event.getAction() == MotionEvent.ACTION_UP){
scroll2nd = holder.scrollContainer.getScrollX();
Log.d("SCROLL", "Scroll up callded: amt is: " + holder.scrollContainer.getScrollX());
}
Log.d("SCROLL", "max scroll amount: " + holder.scrollContainer.getMaxScrollAmount());
if(event.getAction() == MotionEvent.ACTION_UP){
if(scroll2nd > scroll1st && (scroll2nd - scroll1st) > 50){
holder.scrollContainer.postDelayed(new Runnable() {
public void run() {
holder.scrollContainer.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
}
}, 100L);
mDataSet.get(position).isFirstSwipe = true;
} else if (scroll1st > scroll2nd && (scroll1st - scroll2nd) > 50){
holder.scrollContainer.postDelayed(new Runnable() {
public void run() {
holder.scrollContainer.fullScroll(HorizontalScrollView.FOCUS_LEFT);
}
}, 100L);
mDataSet.get(position).isFirstSwipe = true;
}
}
v.onTouchEvent(event);
return true;
}
});
基本上ACTION.DOWN事件不被调用每次所以不能得出不刷卡方向
我得到的所有滚动事件转义Action.DOWN,但有时Action.DOWN也来 –
尝试与ACTION.SCROLL,看看你是否可以赶上它。 –
基本上我需要X1和X2,所以我可以决定滚动directon –