android - 在 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 是一个在另一个上,所以代码所做的只是打开一张图片,另一张关闭。
解决方案
在您的 View.OnTouchListener 返回false
而不是true
. 这将使您的侦听器不消耗触摸事件,并允许这些触摸传播到父 ListView(ViewGroup)让它滚动,同时您可以根据事件是向下或向上操作来切换 alpha。
更多信息:View.OnTouchListener.html#onTouch
我还建议在这里阅读输入培训文档,https://developer.android.com/guide/input/
推荐阅读
- amazon-s3 - 为什么我的 AWS 控制面板显示 2 个存储桶,而我只有 1 个应用程序?是因为 CodePipeline 吗?
- google-calendar-api - 如何配置入站流量规则以允许来自 Google Calendar API 的推送通知?
- python - 如何量化一个训练感知量化模型?
- continuous-integration - 集成 BI 报表开发有多普遍?
- azure - Office 365 管理 API
- excel - VBA代码获取图表最大值并将其放置在单元格中
- javascript - 如何在 Google Sheets App 脚本中获取指定格式的日期?
- c# - EF Core IQueryable 按子属性排序
- javascript - 如何在 npm 脚本中使用 .env 变量
- ios - 返回任何类型 Swift 的函数