Вложенный фрагмент не отображается внутри ViewPager
Прилагаемый картина показывает ViewPager с 3 страниц. Каждая страница реализована как фрагмент. На панели инструментов есть значок + в черном для добавления нового пациента. Когда нажимается значок +, внутри страницы «Пациенты» должен быть создан вложенный фрагмент, который позволяет создать нового пациента.
В Logcat я вижу, что обратные вызовы жизненного цикла фрагмента для вложенного фрагмента называются right upto onResume()
, но представление для вложенного фрагмента не отображается.
Я делаю это, чтобы создать вложенный фрагмент и вставить его в иерархию родительского вида фрагмента:
FrPatientDetails frChild = new FrPatientDetails();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction()
.replace(R.id.flPatientsPage, frChild);
transaction.addToBackStack(null)
.commit();
R.id.flPatientsPage
находится на странице пациентов, в которую я пытаюсь вставить вложенный фрагмент длина FrameLayout
.
У меня возникает ощущение, что способ вставить дочерний фрагмент в родительский фрагмент, размещенный в ViewPager
, может быть другим, но я не понимаю, что делать.
Помог ли кто-нибудь здесь.
Обновление: Добавлена XML для страницы пациентов (родителя)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/patients_page_linear_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lvHomeViewPatientsPage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@color/colorPrimary"
android:dividerHeight="1dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp"
android:textColor="@android:color/black" />
<TextView
android:id="@+id/tvEmpty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@android:color/black"
android:text="@string/patients_page_empty"
android:fontFamily="sans-serif"
android:gravity="center"
android:textSize="16sp"
/>
<FrameLayout
android:id="@+id/flPatientsPage"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
Update: Это скриншот после того, как после того, что предложил @Filo:
Вы пытались с 'add' вместо' replace'? – Fllo
Да. Я попробовал 'add' и' repalce' и оба дали тот же результат. – Amit
знак плюса добавляет вложенный фрагмент, относящийся к фрагменту, который находится на дисплее. –