I have a layout - let's call it layout A - with some EditTexts, which I inflate inside a DialogFragment and all goes well with them. I have another DialogFragment whose layout - let's call it layout B - has a ViewPager2 in it, and I use it with a FragmentStateAdapter which hosts fragments where I reuse layout A for each of them.
Now my problem is that when I tap on the EditTexts inside the ViewPager2, they seem to be getting focus (my grasp of that subject isn't perfect), the cursor starts showing and I can manipulate the text with it ("select", "select all", "cut", etc.), but the soft keyboard won't open up.
In the dialog without the viewPager, those same EditTexts work flawlessly and the keyboard opens up.
In the Android Manifest I have android:windowSoftInputMode="adjustPan"
(I use a single activity in my app).
What could be the problem?
My code:
Layout A:
<?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="match_parent">
<TextView
android:id="@+id/title_text_view"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/double_margin"
android:layout_marginLeft="@dimen/double_margin"
android:text="@string/title_colon"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/title_edit_text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/title_edit_text" />
<EditText
android:id="@+id/title_edit_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/double_margin"
android:layout_marginRight="@dimen/double_margin"
android:autofillHints="false"
android:ellipsize="end"
android:hint="@string/enter_track_title"
android:inputType="textCapWords|textMultiLine"
android:maxLines="2"
android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@id/position_edit_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/title_text_view"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/position_text_view"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/double_margin"
android:layout_marginLeft="@dimen/double_margin"
android:text="@string/number_dot"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/position_edit_text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/position_edit_text" />
<EditText
android:id="@+id/position_edit_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin"
android:layout_marginEnd="@dimen/double_margin"
android:layout_marginRight="@dimen/double_margin"
android:layout_marginBottom="@dimen/margin"
android:autofillHints="false"
android:ellipsize="end"
android:hint="@string/enter_track_position"
android:inputType="text"
android:maxLength="6"
android:maxLines="1"
android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@id/duration_text_view"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/position_text_view"
app:layout_constraintTop_toBottomOf="@id/title_edit_text"
tools:ignore="TextFields" />
<TextView
android:id="@+id/duration_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/duration_colon"
android:textStyle="bold"
android:layout_marginBottom="@dimen/double_margin"
app:layout_constraintBottom_toTopOf="@id/colon_text_view"
app:layout_constraintEnd_toEndOf="@id/seconds_picker"
app:layout_constraintStart_toStartOf="@id/minutes_picker"
app:layout_constraintTop_toBottomOf="@id/position_edit_text" />
<NumberPicker
android:id="@+id/minutes_picker"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/double_margin"
android:layout_marginLeft="@dimen/double_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/colon_text_view"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/duration_text_view" />
<TextView
android:id="@+id/colon_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin"
android:text="@string/colon"
android:textSize="42sp"
app:layout_constraintBottom_toBottomOf="@id/minutes_picker"
app:layout_constraintEnd_toStartOf="@id/seconds_picker"
app:layout_constraintStart_toEndOf="@id/minutes_picker"
app:layout_constraintTop_toTopOf="@id/minutes_picker"
app:layout_constraintVertical_bias="0.42000002" />
<NumberPicker
android:id="@+id/seconds_picker"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/double_margin"
android:layout_marginRight="@dimen/double_margin"
app:layout_constraintBottom_toBottomOf="@id/minutes_picker"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/colon_text_view"
app:layout_constraintTop_toTopOf="@id/minutes_picker" />
</androidx.constraintlayout.widget.ConstraintLayout>
Layout B:
<?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="match_parent">
<View
android:id="@+id/edit_track_divider_1"
style="@style/divider"
android:layout_marginTop="@dimen/double_margin"
app:layout_constraintBottom_toTopOf="@id/left_arrow"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
android:id="@+id/left_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/quadruple_margin"
android:layout_marginLeft="@dimen/quadruple_margin"
android:layout_marginTop="@dimen/double_margin"
android:background="@android:color/transparent"
android:contentDescription="@string/left_arrow_image"
android:scaleX="1.5"
android:scaleY="1.5"
app:layout_constraintBottom_toTopOf="@id/edit_tracks_pager"
app:layout_constraintEnd_toStartOf="@id/right_arrow"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/edit_track_divider_1"
app:srcCompat="@drawable/ic_action_left" />
<TextView
android:id="@+id/position_header"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="@id/left_arrow"
app:layout_constraintEnd_toStartOf="@id/right_arrow"
app:layout_constraintStart_toEndOf="@id/left_arrow"
app:layout_constraintTop_toTopOf="@id/left_arrow" />
<ImageButton
android:id="@+id/right_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/quadruple_margin"
android:layout_marginRight="@dimen/quadruple_margin"
android:background="@android:color/transparent"
android:contentDescription="@string/right_arrow_image"
android:scaleX="1.5"
android:scaleY="1.5"
app:layout_constraintBottom_toBottomOf="@+id/left_arrow"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/left_arrow"
app:layout_constraintTop_toTopOf="@+id/left_arrow"
app:srcCompat="@drawable/ic_action_right" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/edit_tracks_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/edit_track_divider_2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/left_arrow" />
<View
android:id="@+id/edit_track_divider_2"
style="@style/divider"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/edit_tracks_pager" />
</androidx.constraintlayout.widget.ConstraintLayout>