gpt4 book ai didi

android - 向左/向右滑动的 Recyclerview

转载 作者:太空狗 更新时间:2023-10-29 14:50:59 29 4
gpt4 key购买 nike

我有带 tablayout 的 viewpager,在 ViewPager 内部我有一个正在创建 RecyclerView 的 fragment ,

在 RecyclerVIew roe 项目中,我创建了一个 Horizo​​ntal ScrollView,用于获得向左/向右滑动的 Action ,

基本上我只想向左滑动该行 75% 的屏幕,然后显示可滑动 View ,

我还使用了 RecyclerViewItemTouchHelper 但它滑动了整行(100% 滑动了该行),

我知道 google 上有一些库可用于创建左右滑动手势,

但是所有这些都无法正常工作,因为当我们在 recyclerview 项目上滑动时,有时触摸会转到 ViewPager 因此页面被滑动我不希望这样,

所以我使用 Horizo​​ntalScrollView,但问题是我无法在 Horizo​​ntalScrollView 的触摸监听器中检测到滑动方向,

实际上,如果在 Horizo​​ntalScrollView 上滚动,我们想在一定数量后自动滚动,

下面是我试过的代码。

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 事件,所以无法导出滑动方向

最佳答案

确保 RecyclerView 将事件传递给滚动容器。

onTouchListener 添加到 RecyclerView 并将事件传递给您的 ScrollView

关于android - 向左/向右滑动的 Recyclerview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35356371/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com