我知道这个问题之前已经被问过,并且我已经解决过它们,但它们没有解决我的问题。
我有 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 就会被调用,并且图像会被单击。每当我滚动时,我都不希望出现这种情况,因为这不允许我滚动。请帮忙
最佳答案
如果我正确理解您的问题,您可以使用 onClickListener
和 selector
来实现此目的。此外,您不必为所选状态保留重复的图像集。您可以像这样动态创建选择器
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/