Здравствуйте, у меня очень странная проблема, которая сводит меня с ума. У меня есть DialogFragment и внутри этого RecyclerView. У меня есть специальный адаптер для моего RecyclerView и пользовательский макет XML для DialogFragment и RecyclerView Adpater.
Когда я открываю диалоговое окно, вид просто отлично. Как и должно быть.
![Normal behavior when dialog opens](https://i.stack.imgur.com/Xavyj.jpg)
Проблема возникает, когда я щелкаю внутри поля EditText (желтое поле на рисунке) и появляется экранная клавиатура , Затем по какой-то причине весь макет портится, и он ведет себя так, как я определил его как WRAP_CONTENT.
![Problematic behavior after clicking on the TextEdit field](https://i.stack.imgur.com/bL6Tq.jpg)
Понятия не имею, почему это происходит. Мой код кажется правильным, и, посмотрев на другие подобные вопросы, код подходит мне на глаза.
Это пользовательский макет 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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/packitemnoField"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_barcode_small"
android:drawablePadding="4dp"
android:paddingStart="4dp"
android:paddingTop="2dp"
android:paddingEnd="4dp"
android:paddingBottom="2dp"
android:textAlignment="viewStart"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="0062020512845" />
<TextView
android:id="@+id/qtyDescTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:text="@string/tweightLabel"
android:textSize="14sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/packDescField" />
<TextView
android:id="@+id/RemainsDescTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_marginBottom="4dp"
android:text="@string/weightLabel"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/qtyDescTV"
app:layout_constraintTop_toBottomOf="@+id/qtyDescTV" />
<TextView
android:id="@+id/thWeightField"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:textColor="@color/darkGrey"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/qtyDescTV"
app:layout_constraintTop_toTopOf="@+id/qtyDescTV"
tools:text="9999 kg." />
<TextView
android:id="@+id/weightField"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:textColor="@color/successGreen"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/qtyDescTV"
app:layout_constraintTop_toTopOf="@+id/RemainsDescTV"
tools:text="9999 kg." />
<TextView
android:id="@+id/packDescField"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:textColor="@color/od_color1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/packitemnoField"
tools:text="ALBIO / ΠΡΟΦΙΛ ΠΕΛΑΤΗ" />
<ImageView
android:id="@+id/kgIcon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginEnd="4dp"
android:tint="@color/darkGrey"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/newWeightInput"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/newWeightInput"
app:srcCompat="@drawable/ic_weight" />
<EditText
android:id="@+id/newWeightInput"
android:layout_width="69dp"
android:layout_height="36dp"
android:layout_marginEnd="2dp"
android:background="@drawable/border_qty"
android:ems="10"
android:inputType="number"
android:maxLength="4"
android:padding="4dp"
android:textAlignment="center"
android:textColor="@color/colorSecondaryVariant"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/kgIcon"
app:layout_constraintTop_toTopOf="parent"
tools:text="9999" />
<TextView
android:id="@+id/packDateField"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginEnd="4dp"
android:text="26/03/2020"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/newWeightLbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="2dp"
android:text="@string/newWeight"
android:textSize="12sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/newWeightInput"
app:layout_constraintEnd_toStartOf="@+id/newWeightInput"
app:layout_constraintTop_toTopOf="@+id/newWeightInput" />
</androidx.constraintlayout.widget.ConstraintLayout>
И это код в методе onCreateViewHolder в адаптере
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.rvr_package, parent, false);
return new PackagesViewHolder(view);
}
Вот макет DialogFragment
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
<Button
android:id="@+id/updateWeightBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="8dp"
android:backgroundTint="@color/colorAccent"
android:text="@string/update"
app:layout_constraintBottom_toBottomOf="@+id/closeBtn"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline"
app:layout_constraintTop_toTopOf="@+id/closeBtn" />
<Button
android:id="@+id/closeBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="4dp"
android:text="@string/close"
app:layout_constraintEnd_toStartOf="@+id/guideline"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/packagesRecyclerView" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/packagesRecyclerView"
android:layout_width="0dp"
android:layout_height="400dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>