По-видимому, на Android есть bug, который разбивает View.bringToFront
.Как перенести взгляд на передний план без вызова bringToFront()?
Если у меня есть Представления, расположенные в GridView, и вы хотите, чтобы Перенести представление на передний план, вызывая метод bringToFront(), он может быть перемещен в нижнее правое положение в 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;
}
}
это, по-видимому удаляет вид из себя! Без жалости! Является ли ViewGroup настолько тупой, что он не может управлять Z-индексами каким-либо другим способом, который перемещает элементы управления? Очевидно, когда GridView удаляет свой дочерний элемент и затем добавляет его обратно, он помещается в конец сетки!
Есть ли что-нибудь, что я могу сделать, чтобы показать вид сверху других, не прибегая к хакерству? Одна вещь, которая приходит мне на ум, - создать еще один вид над GridView, который окажется выше того, который я пытаюсь принестиToFront(), но мне не нравится это решение.
Это не будет работать с Property Animation. – 2014-12-24 12:10:38