【问题标题】:RecyclerView item swipe update background textviewRecyclerView 项目滑动更新背景文本视图
【发布时间】:2017-10-16 18:27:59
【问题描述】:

我有一个问题,我被困在这一点上。我在 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;
            }


        });

每次我刷这些项目时,有时会显示 1,有时会显示 5,这意味着它的行为不正常。有人可以帮我解决这个问题。谢谢。

【问题讨论】:

    标签: java android android-recyclerview swipe motionevent


    【解决方案1】:

    尝试更新onTouchEvent()case MotionEvent.ACTION_MOVE中的textView

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多