Es gibt anscheinend eine bug in Android, die bricht.Wie bringe ich einen Blick nach vorne, ohne bringToFront() aufzurufen?
Wenn ich Ansichten in einer GridView angeordnet habe und eine Ansicht nach vorne bringen möchte, indem ich BringToFront() aufruft, kann es an die untere rechte Position in der GridView verschoben werden.
Etwas schattiges geht dort auf, so dass ich bringToFront() nicht verwenden kann. Wenn ich es nicht nenne, funktioniert alles gut. Aber die Ansichten überschneiden sich - wenn ich die Skalierungsanimation zum Vergrößern einer Ansicht verwende, wird sie teilweise von den Ansichten nach unten und rechts verdeckt.
Ich habe bringToFront der Quelle ausgecheckt und es ruft parent.bringChildToFront (...)
es diese Methode es entfernt den Blick von sich selbst scheinbar
public void bringChildToFront(View child) {
int index = indexOfChild(child);
if (index >= 0) {
removeFromArray(index);
addInArray(child, mChildrenCount);
child.mParent = this;
}
}
ist! Ohne Gnade! Ist eine ViewGroup so dumm, dass sie Z-Indizes nicht auf andere Weise verwalten kann, als dass sie die Kontrollen mischen? Wenn GridView seinen untergeordneten Knoten entfernt und dann wieder hinzufügt, wird er offensichtlich am Ende des Gitters platziert.
Gibt es etwas, was ich tun kann, um eine Ansicht über andere zu zeigen, ohne auf etwas Hacking zurückzugreifen? Eine Sache, die mir in den Sinn kommt, ist, eine weitere Ansicht oberhalb der GridView zu erstellen, die über der zu sein scheint, die ich bringe ToFront(), aber ich mag diese Lösung nicht.
Dies funktioniert nicht mit Property Animation. –