私は5つのフラグメントを含むビューページャーを含むアクティビティ "A"を持っています。 フラグメントの1つに、プログラムで追加された7-8個以上のフラグメントがあります。 各フラグメントは、それぞれのフラグメントで定義された静的メソッドinstance()を使用してインスタンス化されます。フラグメント - ブランク画面内のページャーとフラグメントを表示
for(int i = 0 ; i < 10; i++) {
CustomFragment fragment = (CustomFragment) Class.forName(classNameList.get(i)).instance();
getFragmentManager().beginTransaction().add(R.id.parentLinearLayout, fragment, fragmentTag).commitAllowingStateLoss();
}
このアクティビティが起動され、異なるフラグメント間を移動すると、すべて正常に動作します。
私はアクティビティ "B"を起動し、アクティビティ "A"に戻るとします。ビューページャ内の他のすべてのフラグメントは、フラグメントのセットを含むフラグメントを除いて正常にロードされます。 空白の画面として表示されます。何が問題なの?
コンストラクタを使用してそのフラグメントを初期化していますか? – MohanadMohie
はい私は.. @MohanadMohieはそれがどんな意味で重要で影響を与えますか? –
もちろん。アクティビティのようなフラグメントは、コンストラクタを使用せずにAndroidシステムによってインスタンス化されるため、コンストラクタで渡すアイテムは、Androidがフラグメントを再インスタンス化するときに無視されます。 ViewPagerで使用する前に、フラグメントに引数を追加することができます。私は短いショーの例で答えを掲示します。 – MohanadMohie