У моего приложения для Android есть требование, когда определенный поток имеет 7 разных экранов. Теперь каждый из этих экранов имеет общий верх и низ. Поэтому я решил создать FragmentActivity
и 7 разных Fragments
. Как вставить фрагменты в FragmentActivity
во время выполнения? Я прочитал этот учебник here, и в соответствии с этим учебник мой главный FragmentActivity
должен иметь следующую структуру:Использование макета фрагмента
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/fragment_content"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
И он должен использовать следующий код, чтобы заменить фрагмент:
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragment_content);
if (fragment == null) {
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.fragment_content, new BasicFragment());
ft.commit();
}
Что дон «т понять, является следующая строка:
ft.add(R.id.fragment_content, new BasicFragment());
R.id.fragment_content
является FrameLayout
, будет ли это вставить фрагмент в FrameLayout
или что?
Он должен быть с помощью 'tag' идентифицировать' Fragment'. Вы используете 'id', если ваши' Fragment 'находятся в xml, что здесь не так, вы добавляете их программно (лучший подход). –