Я могу добавить фрагмент в свой фрагмент, но когда я пытаюсь заменить фрагмент на новый, экран пуст. Я могу добавить новый фрагмент, но потом он не прокручивается. Я также не могу удалить фрагмент. Кто-нибудь знает, что я делаю неправильно? Я красен много об этом, и я чувствую, что я перепробовал все ..Замена фрагментов в одном действии
framelayout определяется статическим:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>'
И это способ переключения фрагментов: пустот TabOnTabSelected (объект отправителя, ActionBar .TabEventArgs tabEventArgs) { ActionBar.Tab tab = (ActionBar.Tab) отправитель;
var fragmentTransaction = FragmentManager.BeginTransaction();
switch (tab.Text) {
case "vandaag":
if (currentFragment != null) {
fragmentTransaction.Remove (FragmentManager.FindFragmentByTag ("gister"));
}
if (fragmentToday == null) {
fragmentToday = WZWVDataOverview.NewInstance (DateTime.Now.AddDays (0).ToString ("d-M-yyyy"));
}
fragmentTransaction.Add (Resource.Id.fragment_container, fragmentToday, "vandaag");
currentFragment = fragmentToday;
break;
case "gister":
if (currentFragment != null) {
fragmentTransaction.Remove (currentFragment);
}
if (fragmentYesterday == null) {
fragmentYesterday = WZWVDataOverview.NewInstance (DateTime.Now.AddDays (-1).ToString ("d-M-yyyy"));
}
currentFragment = fragmentYesterday;
fragmentTransaction.Add (Resource.Id.fragment_container, currentFragment, "gister");
break;
case "morgen":
if (currentFragment != null) {
fragmentTransaction.Remove (currentFragment);
}
if (fragmentTomorrow == null) {
fragmentTomorrow = WZWVDataOverview.NewInstance (DateTime.Now.AddDays (+1).ToString ("d-M-yyyy"));
}
fragmentTransaction.Add (Resource.Id.fragment_container, fragmentTomorrow);
currentFragment = fragmentTomorrow;
break;
}
fragmentTransaction.Commit();
}
XML из framelayout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<ListView
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list" />
</LinearLayout>
Огромное спасибо заранее!
Спасибо за помощь. Я уже пробовал заменить, так как это самое естественное решение, но оно как-то не работает. У меня заканчивается пустой экран. – Miriam
Можете ли вы опубликовать XML-макет фрагмента, с которым возникают проблемы? Я опубликовал потенциальное второе решение. –
Я добавил рамочный макет, чтобы попробовать ваше второе решение – Miriam