У меня три фрагмента, и они расположены так, как показано ниже:для Android - Вложение Фрагменты Нет Просмотр Найдено
«осколочные А и осколочные С не подключен, но осколочные В и С являются каждый фрагмент содержит 1 ListView так. каждый раз, когда я запускаю событие, он переходит к следующему фрагменту ».
фрагмента А ---> (Внутри осколочные
A
) Фрагмент B ---> (Внутри осколочныеB
) Фрагмент С
- Фрагмент А (main.xml)
- Фрагмент B (R.id.contentFragment)
- Фрагмент С (R.id.contentFragment)
можно отобразить Фрагмена t A и Fragment B, и все в порядке, , но, если я вызываю фрагмент C от B
Я получил "No view found in contentFragment=0x7f040039"
.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/white"
android:id="@+id/frameLayout"
>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"
>
</ListView>
<FrameLayout
android:id="@+id/contentFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" >
</FrameLayout>
</FrameLayout>
</FrameLayout>
FragmentA.java
Внутри фрагмента А, чтобы открыть фрагмент В
Fragment fragment1 = new FragmentB();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.contentFragment, fragment1, fragMainGroups);
transaction.addToBackStack(fragMainGroups);
transaction.commit();
FragmentB.java
Внутри Фрагмент B, чтобы открыть фрагмента С
String fragGroups = "groups";
Fragment fragment1 = new FragmentC();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.contentFragment, fragment1, fragGroups);
transaction.addToBackStack(fragGroups);
transaction.commit();
FragmentC.java
Внутри фрагмента С
public class FragmentItems extends ListFragment{
public void onAttach(Activity activity) {
super.onAttach(activity);
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
public void onCreate(Bundle e)
{
super.onCreate(e);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.load_items_activity, container, false);
return rootView;
}
}
LogCat
07-25 18:10:20.388: E/FragmentManager(24703): No view found for id 0x7f040039 (com.jinisys.restoplusordering:id/contentFragment) for fragment FragmentItems{4156f480 #0 id=0x7f040039 groups}
07-25 18:10:20.388: E/FragmentManager(24703): Activity state:
07-25 18:10:20.388: E/FragmentManager(24703): No view found for id 0x7f040039 (com.jinisys.restoplusordering:id/contentFragment) for fragment FragmentItems{4156f480 #0 id=0x7f040039 groups}
07-25 18:10:20.388: E/FragmentManager(24703): Activity state:
07-25 18:10:20.718: E/AndroidRuntime(24703): FATAL EXCEPTION: main
07-25 18:10:20.718: E/AndroidRuntime(24703): java.lang.IllegalArgumentException: No view found for id 0x7f040039 (com.jinisys.restoplusordering:id/contentFragment) for fragment FragmentItems{4156f480 #0 id=0x7f040039 groups}
07-25 18:10:20.718: E/AndroidRuntime(24703): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
07-25 18:10:20.718: E/AndroidRuntime(24703): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
07-25 18:10:20.718: E/AndroidRuntime(24703): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
07-25 18:10:20.718: E/AndroidRuntime(24703): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
07-25 18:10:20.718: E/AndroidRuntime(24703): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
07-25 18:10:20.718: E/AndroidRuntime(24703): at android.os.Handler.handleCallback(Handler.java:615)
Предположим, что 'contentFragmentTtems' удален. Мне не нужен этот сэр. См. Обновленный код. Я хочу заменить то, что 'contentFragment' содержит в Fragment C, как то, что я сделал в Fragment A. Я использую только' main.xml' для отображения вложенных фрагментов. – rahstame
Ну, если вы хотите заменить свой фрагмент B фрагментом C, то да, вы должны заменить 'contentFragment', но, как я сказал ранее, вам нужно сделать это из фрагмента A, а не из фрагмента B. – Desert
Я уверен, что если я понял, что вы имеете в виду с этим сэром, 'делать это из Фрагмента А, а не из Фрагмента B'. 'Frag A' и' Frag C' не подключены, но 'Frag B' и' C'. Каждый фрагмент содержит 1 listview, поэтому каждый раз при запуске события он переходит к следующему фрагменту. – rahstame