首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击被视图覆盖的工具栏

点击被视图覆盖的工具栏
EN

Stack Overflow用户
提问于 2015-02-13 04:53:44
回答 2查看 262关注 0票数 0

下面是我的当前情况:我不能点击工具栏,因为有一个视图是重叠的,它拦截触摸响应。我会扩展:我正在制作一个音乐应用程序。在音乐应用程序中,工具栏下面有一个歌曲列表。但是,一旦单击歌曲,面板就会打开,并在工具栏上滑动,并继续进入透明的状态栏。将附上这方面的图片。

显然,由于这个视图与工具栏重叠,所以我实际上不能将工具栏用于任何触摸事件。但我需要。我不能将视图移到工具栏下面,因为我的滑动面板仅限于工具栏下面,而不是重叠。如果有什么事要解决的话,请告诉我。我非常感激。

因此,在我目前的情况下,我想也许我可以触摸视图中覆盖工具栏的部分,并将数据发送到包含工具栏的视图中,这样我就可以检测到工具栏上的触摸。然而,我不知道如何做到这一点,甚至可能。

我的问题是:如何检测到另一个视图下的视图中的触摸?

以下是图片:以下是歌曲列表:

当歌曲面板打开时(我使用的是一张老虎的图片,用于任何一首目前没有艺术的歌曲):

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-13 05:37:27

见鬼?您希望您的用户可以触摸工具栏,因为它与另一个视图重叠,因此此时不可见。什么样的用户会期望这样的用户体验?

我是说:

  1. 用户如何知道他可以单击不可见的元素^^?
  2. 如果用户神奇地知道他可以点击,他怎么知道他必须点击的确切位置。例如,他也可以单击工具栏菜单项之一,但如果他多单击几个像素,那么他将单击工具栏项目1而不是工具栏项目2。

然而,您有三种可能性:

  1. 您可以使重叠视图不能被overlappingView.setClickable(false);单击。
  2. 可以使用与重叠视图上的工具栏具有相同宽度和高度的OnClickListener添加透明视图。在OnClickListener中,您可以简单地调用所需的方法,比如onOptionsItemSelected() (伪造所需的参数),或者使用EventBus进行通信。
  3. 类似于2选项,添加一个透明视图,但不是设置OnClickListener,而是通过扩展从视图设置OnTouchListener ),并通过调用toolbar.onTouchEvent(motionEvent);将MotionEvent转发到工具栏
票数 1
EN

Stack Overflow用户

发布于 2015-02-13 05:31:00

如果您确实希望检测另一个视图下的某个视图的触摸事件,可以将前景视图的onTouchEvent设置为false。但是,我建议您重新考虑布局,以便将工具栏放在顶部,这样用户就可以看到它,否则他们就不知道自己在点击什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28492749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档