【发布时间】: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