【问题标题】:Is it possible to enable touch events for a View inside a ViewGroup but outside its bounds?是否可以在 ViewGroup 内但在其边界之外为 View 启用触摸事件?
【发布时间】:2018-02-14 00:06:39
【问题描述】:

我目前正在尝试设计一个 ViewGroup(特别是 FrameLayout 的一个子类),它可以布局任意数量的子视图,并使它们能够拖放到布局组之外。它几乎与 LinearLayout 相同:

目前,我可以将视图拖到 ViewGroup 之外并绘制它们,但是在放开视图后,它无法重新选择并进一步拖动。

我想知道是否有一种方法可以将逻辑隔离到 Layout 子类,并且不需要在使用片段/视图组时做太多/任何额外的事情。

我尝试在我的 FrameLayout 子类中覆盖 getHitRect(Rect),但它似乎从未被调用过。 dispatchTouchEvent(MotionEvent) 当然也没有被调用,大概是因为父 ViewGroup 决定不向它传递触摸,因为它超出了界限。我也尝试过实现 TouchDelegate,但我认为需要在父视图上进行设置,这意味着需要了解这一点并在使用此布局时执行此额外步骤。

关于这是否/如何可能的任何想法?在 iOS 上,它可以通过覆盖 hitTest: 以考虑子视图的框架来相当容易地实现。 Android上有类似的方法吗?

非常感谢您的帮助!

【问题讨论】:

    标签: android drag-and-drop android-linearlayout android-viewgroup


    【解决方案1】:

    没有任何代码很难看到你在做什么,但最好的猜测是每个视图都应该是相对布局的子视图。

    【讨论】:

      猜你喜欢
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 2021-08-22
      • 2013-06-18
      相关资源
      最近更新 更多