【发布时间】:2014-10-21 15:14:26
【问题描述】:
我有一个包含许多子视图的父视图。所有视图(父视图及其子视图)都实现了拖动监听器。
我能否保证在发生drop事件时,子视图会在父视图之前收到事件?在我的测试中似乎是这样,但我找不到任何文档可以确认这是一种确定性行为。
【问题讨论】:
我有一个包含许多子视图的父视图。所有视图(父视图及其子视图)都实现了拖动监听器。
我能否保证在发生drop事件时,子视图会在父视图之前收到事件?在我的测试中似乎是这样,但我找不到任何文档可以确认这是一种确定性行为。
【问题讨论】:
这与视图的 Z 顺序有关。默认情况下,在 android 中,如果您在 xml 中定义视图,则 Z 顺序由视图的声明顺序决定。这意味着默认情况下,父视图在层次结构中比其子视图更深。您可以使用 Android Hierarchy Viewer 对此进行进一步调查。因此,默认行为是您所描述的行为。您可以通过在 Z 顺序更深的视图上使用 bringToFront() 来覆盖它。希望这会有所帮助。
这里记录了https://developer.android.com/reference/android/view/View.html#Drawing
【讨论】: