Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RecyclerView项目滑动更新背景文本视图_Java_Android_Android Recyclerview_Swipe_Motionevent - Fatal编程技术网

Java RecyclerView项目滑动更新背景文本视图

Java RecyclerView项目滑动更新背景文本视图,java,android,android-recyclerview,swipe,motionevent,Java,Android,Android Recyclerview,Swipe,Motionevent,我有一个问题,我被困在这一点上。我在recyclerview的每一项上都使用了recyclerview。我需要做的是用1、2等更新textview,就像这样滑动。 我使用event.getRaw(x)获取x轴值,并且我需要随着x值从左向右增加而增加数量,如果滑动从右向左移动,则减少计数。这是我的密码 holder.swipeLayout.setOnTouchListener(new View.OnTouchListener() { int downX, upX, in

我有一个问题,我被困在这一点上。我在recyclerview的每一项上都使用了recyclerview。我需要做的是用1、2等更新textview,就像这样滑动。

我使用event.getRaw(x)获取x轴值,并且我需要随着x值从左向右增加而增加数量,如果滑动从右向左移动,则减少计数。这是我的密码

holder.swipeLayout.setOnTouchListener(new View.OnTouchListener() {

            int downX, upX, initialX = 0, rightX;

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                switch (event.getAction()) {

                    case MotionEvent.ACTION_DOWN:
                        startX = event.getRawX();
                        startY = event.getRawY();
                        break;

                    case MotionEvent.ACTION_MOVE:
                        float x = event.getRawX();

                        float y = event.getRawY();
                        // Calculate move update. This will happen many times
                        // during the course of a single movement gesture.

                        scrollByX = x - startX; // move update x increment
                        scrollByY = y - startY; // move update y increment

                        startX = x; // reset initial values to latest
                        startY = y;

                        if (scrollByX >= 100 && scrollByX < 150)
                            holder.leftTextView.setText("1");
                        if (scrollByX >= 150 && scrollByX < 200)
                            holder.leftTextView.setText("2");
                        if (scrollByX >= 200 && scrollByX < 250)
                            holder.leftTextView.setText("3");
                        if (scrollByX >= 250 && scrollByX < 300)
                            holder.leftTextView.setText("4");
                        if (scrollByX >= 350 && scrollByX < 400)
                            holder.leftTextView.setText("5");

                        break;

                    case MotionEvent.ACTION_UP:
                        upX = (int) event.getX();
                        Log.i("event.getX()", " upX " + downX);
                        holder.swipeLayout.animateReset();
                        //holder.leftTextView.setText("0");
                        scrollByX = 0;
                        scrollByY = 0;
                        if (upX - downX > 100) {

                            // swipe right
                        }

                        else if (downX - upX > -100) {

                            // swipe left
                        }
                        break;

                }

                return false;
            }


        });
holder.swipeLayout.setOnTouchListener(新视图.OnTouchListener(){
int downX,upX,initialX=0,rightX;
@凌驾
公共布尔onTouch(视图v,运动事件){
开关(event.getAction()){
case MotionEvent.ACTION\u DOWN:
startX=event.getRawX();
startY=event.getRawY();
打破
case MotionEvent.ACTION\u移动:
float x=event.getRawX();
float y=event.getRawY();
//计算移动更新。这将发生多次
//在一个动作手势的过程中。
scrollByX=x-startX;//移动更新x增量
scrollByY=y-startY;//移动更新y增量
startX=x;//将初始值重置为最新值
startY=y;
如果(scrollByX>=100&&scrollByX<150)
holder.leftTextView.setText(“1”);
如果(scrollByX>=150&&scrollByX<200)
holder.leftTextView.setText(“2”);
如果(scrollByX>=200&&scrollByX<250)
holder.leftTextView.setText(“3”);
如果(scrollByX>=250&&scrollByX<300)
holder.leftTextView.setText(“4”);
如果(scrollByX>=350&&scrollByX<400)
holder.leftTextView.setText(“5”);
打破
case MotionEvent.ACTION\u UP:
upX=(int)event.getX();
Log.i(“event.getX()”,“upX”+downX);
holder.swipeLayout.animateReset();
//holder.leftTextView.setText(“0”);
scrollByX=0;
scrollby=0;
如果(上行-下行>100){
//向右滑动
}
否则如果(向下-向上>-100){
//左击
}
打破
}
返回false;
}
});

每次我刷这些项目,有时显示1,有时显示5,这意味着它的行为不正常。有人能帮我渡过难关吗。谢谢。

尝试在
onTouchEvent()
案例动作事件中更新文本视图。动作\u移动