Ответ 1
Я знаю, что это старо, но я просто столкнулся с одной и той же проблемой и нашел простое решение, поэтому я хотел бы поделиться им на случай, если это будет запущено любым пользователем Google.
Кажется, что есть ошибка Android, когда ViewPager (особенно ImageSwitcher) помещается в макет, который имеет атрибут android:fitsSystemWindows="true"
. По какой-то причине системные окна, похоже, получают артефакты, нарисованные над ними.:/
Во всяком случае, я нашел исправление. Для моей деятельности у меня был формат XML следующим образом:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
<!-- NOT HERE! android:fitsSystemWindows="true" -->
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageSwitcher
android:id="@+id/background_image_switcher"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="0dp"
android:layout_margin="0dp"
android:background="@color/background_dark_navy"
android:inAnimation="@android:anim/fade_in"
android:outAnimation="@android:anim/fade_out"
>
<ImageView
style="@style/BlurredBackgroundImage"
/>
<ImageView
style="@style/BlurredBackgroundImage"
/>
</ImageSwitcher>
<FrameLayout
android:fitsSystemWindows="true" <!-- Here!!! -->
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Fitted content here -->
</FrameLayout>
Трюк состоял в том, чтобы не содержать ImageSwitcher в макете с атрибутом android:fitsSystemWindows="true"
, но вместо этого переместить атрибут android:fitsSystemWindows="true"
в внутренний FrameLayout, содержащий фактическое содержимое, которое мне нужно было поместить ( текст заголовка в вашем случае). К сожалению, это позволяет видеть, что изображение ImageSwitcher/ViewPager слегка срезается системными окнами, но если изображение используется как фоновое изображение, в любом случае это не имеет большого значения и гораздо лучше компромисс, чем артефакты или поддержка всех различных размеров/стилей, которые могут иметь или не иметь отключенной навигации (например, текущий выбранный ответ).
Надеюсь, это поможет кому-то!