Размещение RecyclerView на часть экрана
Всем привет! Я начинающий 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>
Очень прошу помочь с решением указанных проблем.
Источник: Stack Overflow на русском