android - 如何检测ScrollView是否正在滚动

标签 android ontouchlistener android-scrollview

我知道这个问题之前已经被问过,并且我已经解决过它们,但它们没有解决我的问题。

我有 ScrollView 和一个 LinearLayout 以及 imageview。我已经使用 ontouchListner 到 imageview 来给他们这样的点击效果

switch (motionEvent.getAction()) {
        case MotionEvent.ACTION_DOWN:
            view.getBackground().setColorFilter(0xCCCDDC39, PorterDuff.Mode.SRC_ATOP);
            view.invalidate();
            break;
        case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
            view.getBackground().clearColorFilter();
            view.invalidate();
            startActivity(view.getId());
            break;
}

但问题是,每当我滚动 ontouchlistner 时,imageview 就会被调用,并且图像会被单击。每当我滚动时,我都不希望出现这种情况,因为这不允许我滚动。请帮忙

最佳答案

如果我正确理解您的问题,您可以使用 onClickListenerselector 来实现此目的。此外,您不必为所选状态保留重复的图像集。您可以像这样动态创建选择器

        StateListDrawable states = new StateListDrawable();
        Drawable drawable = ContextCompat.getDrawable(this, R.drawable.your image);
        drawable.setColorFilter(0xCCCDDC39, PorterDuff.Mode.SRC_ATOP);
        states.addState(new int[] {android.R.attr.state_pressed}, drawable);
        yourView.setBackground(states);

关于android - 如何检测ScrollView是否正在滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39263188/

相关文章:

android - phonegap HTML5 地理定位

android - adb连接两部智能手机时得到两个相同的序列号

android - 用于生产和测试的单独 Crashlytics 应用程序条目

android - 通过edittext在android map 中搜索位置

android - 如何检测ScrollView的触摸事件?

android - Firebase 数据库查询 : return latest added object in which the child has a value

android - 如何让我的 View 在 ACTION_MOVE 后停止收听触摸事件?

Android 在 ScrollView 中添加 ListView 并从 ListView 中删除滚动

Android ScrollView 在底部被截断

android - 在 LinearLayout 中设置 ScrollView 的属性 - Android