Пример: повышение высоты на 6 дп при просмотре карты потребует 7 дп в атрибуте translationZ вида, который вы хотите на переднем плане.
твует, по-видимому,ошибка в Android который ломаетсяView.bringToFront
.
Если у меня есть Виды, расположенные в GridView, и я хочу вывести Вид на передний план, вызвав метод takeToFront (), он может переместиться в нижнее правое положение в GridView.
Там происходит что-то неясное, так что я не могу использовать метод takeToFront (). Когда я этого не называю, все работает отлично. Но представления перекрываются - если я использую масштабную анимацию для увеличения вида, это частично скрывается представлениями снизу и справа.
Я проверил исходный код метода takeToFront, и он вызывает 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 удаляет свой chil, d, а затем снова добавляет его, он помещается в конец таблицы!
Могу ли я что-нибудь сделать, чтобы показать View поверх других, не прибегая к каким-либо взломам? Одна вещь, которая приходит мне в голову, - это создать другой вид поверх GridView, который будет казаться выше того, который я пытаюсь принести ToFront (), но мне не нравится это решение.