Существует ли какая-либо конкретная c причина, по которой вам нужно обернуть содержимое в RelativeLayout
, если не используйте FrameLayout
, чтобы исправить вашу проблему, не забудьте установить android:layout_gravity="end|top"
, чтобы расположить кнопку закрытия сверху- конец. Таким образом, код выглядит примерно так:
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:clickable="true"
android:focusable="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/bottom_style"
android:overScrollMode="never"
app:behavior_hideable="false"
app:behavior_peekHeight="150dp"
app:layout_behavior="....BottomSheetController.MyBottomSheetBehavior">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp">
<....BottomSheetController.MyRecyclerView
android:id="@+id/recycler_view"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:overScrollMode="never" />
<ImageView
android:id="@+id/close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|top"
android:src="@drawable/ic_button_close" />
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.core.widget.NestedScrollView>
Что касается причины, по которой, как я полагаю, RelativeLayout показывал неправильный вывод, было потому, что расстояние просмотров по оси Z установлено на основе Порядок они генерируются. Таким образом, несмотря на то, что ImageView установлен после повторного просмотра, чтобы быть сверху, но держатели внутри генерируются впоследствии и, следовательно, сверху изображения. Если бы это было простое представление, сгенерированное перед просмотром изображения, изображение было бы сверху по желанию.
PS: я не нашел никакой документации для этого, и я просто считаю, что это работает, так что если это не так В случае, если кто-либо может исправить меня.