如何在不调用bringToFront()的情况下将视图带到前面?

Axa*_*dax 6 layout android view z-index viewgroup

Android中显然存在一个错误View.bringToFront.

如果我将视图排列在GridView中并希望通过调用bringToFront()将View带到前面,它可能会移动到GridView中的右下角位置.

那里有一些阴暗的东西,所以我不能使用bringToFront().当我不打电话时,一切正常.但是视图重叠 - 如果我使用缩放动画来放大视图,它会被视图部分遮盖到底部和右边.

我已经检查了bringToFront的源代码,它调用了parent.bringChildToFront(...)

这是这种方法

public void bringChildToFront(View child) {
     int index = indexOfChild(child);
      if (index >= 0) {
          removeFromArray(index);
          addInArray(child, mChildrenCount);
          child.mParent = this;
      }
  }
Run Code Online (Sandbox Code Playgroud)

它显然从自身中删除了视图!无情地!ViewGroup是如此愚蠢,以至于无法以任何其他方式管理Z-index,从而改变控制?显然,当GridView删除它的子进程然后再将其添加回来时,它会被放置在Grid的末尾!

有什么我可以做的,以显示一个视图在其他人之上,而不诉诸一些黑客?我想到的一件事是在GridView上面创建另一个View,它看起来就像我试图带来ToTront()的那个,但我不喜欢这个解决方案.

Axa*_*dax 3

显然我错过了android:clipChildren="false"GridView 中的属性。它解决了我的问题。