SurfaceView перекрывает другой SurfaceView на Android 8.0 - PullRequest
0 голосов
/ 14 сентября 2018

У меня странная проблема с моим приложением на Android 8.0. У меня есть свой прокручиваемый виджет, код доступен на github . У него два ребенка, которые можно прокручивать по одному бесконечно.

На экране шахматная доска - это SurfaceView, а прокручиваемый движущийся ребенок с шахматными фигурами на нем - также SurfaceView. Другим потомком прокручиваемого представления является простой LinearLayout.

Проблема в том, что когда дочерний SurfaceView находится под шахматной доской, он отображается над ней, а другой дочерний элемент прокручивается нормально. Посмотрите на рисунок ниже.

enter image description here

Проблема появилась на Android 8. На всех предыдущих версиях работала нормально.

1 Ответ

0 голосов
/ 18 сентября 2018

Вы можете попробовать сделать так, чтобы SurfaceView вверху экрана:

surfaceView.setZOrderMediaOverlay(true);

Основной совет не использовать setZOrderOnTop(true), так как он отображает SurfaceViewвыше любого элемента пользовательского интерфейса.setZOrderMediaOverlay отображает SurfaceView под пользовательским интерфейсом, но над другим SurfaceView.

Больше от здесь

...