首页 > 解决方案 > 在 ListView 中包含的 ImageView 中使用 OnTouchListener

问题描述

我使用包含 Imageviews 的 ListView。ListView 当然是可滚动的。我想为 Imageviews 使用 OnTouchListener。问题是,当我实际上只想滚动 ListView 时会触发 OnTouchListener。我怎么解决这个问题?

这是 OnTouchListener 的作用:

imageView1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {

switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:

imageView1.setAlpha(0f);
imageView2.setAlpha(1f);


break;

case MotionEvent.ACTION_UP:

imageView1.setAlpha(1f);
imageView2.setAlpha(0f);

break;
}

 return true;

}

});

ImageViews 是一个在另一个上,所以代码所做的只是打开一张图片,另一张关闭。

标签: android

解决方案


在您的 View.OnTouchListener 返回false而不是true. 这将使您的侦听器不消耗触摸事件,并允许这些触摸传播到父 ListView(ViewGroup)让它滚动,同时您可以根据事件是向下或向上操作来切换 alpha。

更多信息:View.OnTouchListener.html#onTouch

我还建议在这里阅读输入培训文档,https://developer.android.com/guide/input/


推荐阅读