如何确定 Android 中两个视图的公共父视图
How to Determine Common superview of two views in Android
我的一个朋友问了我这个问题,我无法自己找出答案。我已经尝试 Google,但我正在寻找 iOS 平台的答案。
也许我可以谷歌搜索错误的术语,我想要有关如何找到答案的指导。如果涉及到 Android OS/ 抽象为开发人员执行实现的场景,我也想知道是什么。
如何确定Android中两个视图的公共父视图?
JAVA 没有多重继承,所以你不能通过 extends
做到这一点,但有一种方法可以通过接口来做到这一点。只需定义一个接口,其中包含您希望每个视图子类都具有的方法,然后您的视图子类必须实现该接口。
我不知道 Android 中是否有现成的方法可以做到这一点,但是编写自己的方法并不难。 Common superview 只是这两个视图在视图树中的最低公共祖先(LCA)。寻找LCA是标准的算法问题,有很多不同渐近的算法可以解决它。
从两个视图中使用 View.getParent(),直到您在视图的 n 元树中找到最低的共同祖先。
我的一个朋友问了我这个问题,我无法自己找出答案。我已经尝试 Google,但我正在寻找 iOS 平台的答案。
也许我可以谷歌搜索错误的术语,我想要有关如何找到答案的指导。如果涉及到 Android OS/ 抽象为开发人员执行实现的场景,我也想知道是什么。
如何确定Android中两个视图的公共父视图?
JAVA 没有多重继承,所以你不能通过 extends
做到这一点,但有一种方法可以通过接口来做到这一点。只需定义一个接口,其中包含您希望每个视图子类都具有的方法,然后您的视图子类必须实现该接口。
我不知道 Android 中是否有现成的方法可以做到这一点,但是编写自己的方法并不难。 Common superview 只是这两个视图在视图树中的最低公共祖先(LCA)。寻找LCA是标准的算法问题,有很多不同渐近的算法可以解决它。
从两个视图中使用 View.getParent(),直到您在视图的 n 元树中找到最低的共同祖先。