【问题标题】:How to detect touch event at ScrollView?如何在 ScrollView 检测触摸事件?
【发布时间】:2018-04-05 05:13:30
【问题描述】:

在说明之前,我不想在 Scrollview 内部的 Scrollview 使用 TouchEvent。

我想在触摸scrollView时制作弹出窗口。但是使用onTouchEvent,是不是只能检测到ACTION_MOVE、UP、DOWN?

我使用了手势检测器。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_read);

        ScrollView readScroll = (ScrollView)findViewById(R.id.readScrollView);
        TextView textView = (TextView)findViewById(R.id.TextView);
        String filePath = getIntent().getStringExtra("File_Path");

        textView.setText(readFile(filePath));

    }

    @Override
    public boolean onSingleTapUp(MotionEvent e) {
        Toast.makeText(ReadActivity.this, "onKeyUp", Toast.LENGTH_SHORT).show();
        return false;
    }

但它不起作用。 我认为它是因为 scrollView 而被禁用的。

如何检测scrollView的触摸事件?

【问题讨论】:

    标签: android android-scrollview ontouchlistener


    【解决方案1】:

    正如您在问题中已经提到的那样,onTouchEvent 确实有 ACTION_UP,这意味着 handle when touch up

    【讨论】:

      【解决方案2】:

      所以你想观察滚动是向上还是向下移动。

      首先结帐docs

      实施:

      scrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
          @Override
          public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
      
          }
      });
      

      如果您要检查它是向上还是向下运动,只需简单地比较 scrollXoldScrollX,水平 scrollYoldscrollY强>

      【讨论】:

      • Nope.. 在 ScrollView 中观察 touchEvent。谢谢!
      猜你喜欢
      • 2010-10-25
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多