Пример: повышение высоты на 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 (), но мне не нравится это решение.

Ответы на вопрос(5)

Ваш ответ на вопрос