Android: горизонтальный RecyclerView и вертикальный NestedScrollView в одном макете - PullRequest
0 голосов
/ 28 апреля 2020

Мне нужно иметь горизонтальный RecyclerView и вертикальный NestedScrollView в одном макете на одном уровне иерархии макетов (чтобы они не были вложенными). Однако NestedScrollView не прокручивается. Если я удаляю RecyclerView, прокручивается NestedScrollView. Как я могу решить эту проблему? Вот макет:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

<data>

    <variable
            name="poi"
            type="iclaude.berlinwanderer.model.data_classes.PointOfInterest" />
</data>

<com.google.android.material.card.MaterialCardView
        android:id="@+id/mcv_poi_bottomsheet_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="12sp">

    <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/cl_main"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/rv_image"
                android:layout_width="0dp"
                android:layout_height="150dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:poi_images_recyclerview_attributes="@{poi}"
                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                android:orientation="horizontal" />

        <TextView
                android:id="@+id/tv_title"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="@dimen/margin_all_large"
                android:layout_marginTop="@dimen/margin_all_normal"
                android:layout_marginEnd="@dimen/margin_all_large"
                android:ellipsize="end"
                android:maxLines="1"
                android:text="@{poi.name}"
                android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/rv_image"
                tools:text="Alexanderplatz" />

        <TextView
                android:id="@+id/tv_interest"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAllCaps="true"
                android:textAppearance="@style/TextAppearance.MaterialComponents.Caption"
                app:interest_map="@{poi.interest}"
                app:layout_constraintStart_toStartOf="@+id/tv_title"
                app:layout_constraintTop_toBottomOf="@+id/tv_title"
                tools:text="MEMORIAL SITES" />

        <androidx.core.widget.NestedScrollView
                android:id="@+id/nsv_desc"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/margin_all_large"
                android:layout_marginBottom="@dimen/margin_all_normal"
                app:layout_constrainedHeight="true"
                app:layout_constraintBottom_toBottomOf="@id/cl_main"
                app:layout_constraintEnd_toEndOf="@id/tv_title"
                app:layout_constraintStart_toStartOf="@id/tv_title"
                app:layout_constraintTop_toBottomOf="@id/tv_interest"
                app:layout_constraintVertical_bias="0.0">

            <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                <com.google.android.material.textview.MaterialTextView
                        android:id="@+id/tv_desc"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="@{poi.desc}"
                        tools:text="@tools:sample/lorem/random" />

                <com.google.android.material.textview.MaterialTextView
                        android:id="@+id/tv_address"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/margin_all_large"
                        android:gravity="center"
                        android:text="@{poi.address}"
                        tools:text="Spreeweg 1, 10557 Berlin, Germany"
                        android:textAppearance="@style/TextAppearance.MaterialComponents.Caption" />

                <com.google.android.material.textview.MaterialTextView
                        android:id="@+id/tv_coordinates"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="@{String.valueOf(poi.position.latitude) + ',' + ' ' + String.valueOf(poi.position.longitude)}"
                        tools:text="52.365125, 17.25632"
                        android:textAppearance="@style/TextAppearance.MaterialComponents.Caption" />

            </LinearLayout>

        </androidx.core.widget.NestedScrollView>

    </androidx.constraintlayout.widget.ConstraintLayout>

</com.google.android.material.card.MaterialCardView>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...