Размещение RecyclerView на часть экрана

Рейтинг: 0Ответов: 0Опубликовано: 08.01.2023

Всем привет! Я начинающий Android разработчик. Столкнулся с такой проблемой. Есть экран, на котором в верхней части экрана пользователя размещены несколько элементов управления (Buttons, EditText, TextView, Spinner). Нижняя часть экрана представляет собой RecyclerView. При попытке разместить RecyclerView появились следующие проблемы:

  • ReyclerView занимает какое-то произвольное положение на экране и перегораживает другие элементы управления: верхний край RecyclerView расположен значительно выше, чем указано в layout_constraintTop_toBottomOf. Нижняя часть как будто находится под нижней границей экрана визуально не совпадает с constraintBottom_toBottomOf.
  • RecyclerView визуально отображает не все элементы и не дает прокрутить список вниз, чтобы увидеть элементы. Предполагаю, что это из-за того, что часть элементов скрыто внизу экрана, но элемент считает, что они показываются пользователю.

Моя разметка:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/btn_insert_new_measure"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/insert_new_measure"
        android:textColor="@color/white"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:layout_marginStart="24dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="24dp"
        android:background="@color/black"
        app:layout_constraintTop_toBottomOf="@id/btn_insert_new_measure" />


    <TextView
        android:id="@+id/title_find_measure"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="@string/or_find_measure_for_change_or_delete"
        android:textColor="@color/black"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/btn_insert_new_measure" />


    <EditText

        android:id="@+id/nearest_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="14dp"
        android:hint="@string/nearest_date_after_measurement"
        android:inputType="date"
        android:textColor="@color/black"
        android:textSize="14sp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/title_find_measure" />

    <LinearLayout
        android:id="@+id/status_parameter_linear_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="36dp"
        android:layout_marginTop="8dp"
        android:gravity="center"
        android:orientation="horizontal"
        app:layout_constraintStart_toEndOf="@+id/nearest_date"
        app:layout_constraintTop_toTopOf="@id/nearest_date">

        <TextView
            android:id="@+id/parameter_status_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/name_parameter"
            android:textColor="@color/black"
            android:textSize="14sp" />

        <Spinner
            android:id="@+id/status_finding_parameter_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="12dp" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/name_parameter_linear_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="36dp"
        android:layout_marginTop="8dp"
        android:gravity="center"
        android:orientation="horizontal"
        app:layout_constraintStart_toEndOf="@+id/status_parameter_linear_layout"
        app:layout_constraintTop_toTopOf="@id/nearest_date">

        <TextView
            android:id="@+id/parameter_number_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/name_parameter"
            android:textColor="@color/black"
            android:textSize="14sp" />


        <Spinner
            android:id="@+id/name_finding_parameter_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="12dp" />

    </LinearLayout>

    <EditText
        android:id="@+id/price_measure_no_more"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="4dp"
        android:hint="@string/price_measure_no_more_then"
        android:inputType="numberDecimal"
        android:textSize="14sp"
        app:layout_constraintStart_toStartOf="parent"

        app:layout_constraintTop_toBottomOf="@id/name_parameter_linear_layout" />

    <EditText
        android:id="@+id/mumber_of_results"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/show_number_of_results"
        android:inputType="number"
        android:textSize="14sp"
        app:layout_constraintStart_toStartOf="@id/name_parameter_linear_layout"
        app:layout_constraintTop_toTopOf="@id/price_measure_no_more" />

    <TextView
        android:id="@+id/OR"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="14dp"
        android:text="@string/or_you_just_know_measure_number"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/mumber_of_results" />

    <EditText
        android:id="@+id/number_measure_for_search"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="4dp"
        android:hint="@string/measure_number"
        android:inputType="number"
        android:textSize="14sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/OR"

        />


    <Button
        android:id="@+id/btn_find_measure"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/find"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/number_measure_for_search" />

    <TextView
        android:id="@+id/title_search_results"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:text="@string/search_results"
        android:textColor="@color/black"
        android:textSize="14sp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/btn_find_measure" />

    <View
        android:id="@+id/margin_meter"
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:layout_marginStart="24dp"
        android:layout_marginEnd="24dp"
        android:background="@color/black"
        app:layout_constraintTop_toBottomOf="@id/title_search_results" />

    <FrameLayout
        android:layout_marginStart="24dp"
        android:layout_marginTop="12dp"
        android:layout_marginEnd="24dp"
        android:layout_marginBottom="24dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/title_search_results">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/list_of_finded_measures"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:scrollbars="vertical" />

    </FrameLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

Очень прошу помочь с решением указанных проблем.

Ответы

Ответов пока нет.