以下のモックアップに似たレイアウトのメディアを表示するアプリに取り組んでいます。各フラグメントは、imageview と textview を表示する 4 つのカスタム レイアウトを持つ linearlayout 要素のペアです。
2 つ以上のフラグメントがあり、左右にフリックしてさまざまなフラグメントをナビゲートすると、フラグメント内に 4 つのカスタム イメージビューが表示されません。Androidがすべての画像をヒープにロードすることによるガベージコレクションが原因だと思います。
各フラグメントの onResume() メソッドを使用して、レイアウトが表示されているときにレイアウトを再構築しようとしましたが、悲惨な結果になりました。
ユーザーごとにメディアのセットアップ方法に基づいてフラグメント数が異なる可能性があるため、このような画像の多いアクティビティのベスト プラクティスとはどのようなものでしょうか。また、フラグメントのレイアウトを再構築する必要があるかどうかを判断する方法についての提案はありますか?
これは私の最初の Android アプリです。学習曲線は非常に急勾配に感じます。
編集: 要求どおり、ここにアダプターとフラグメントがあります。
public static class HomeScreenPagerAdapter extends FragmentPagerAdapter {
public HomeScreenPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
MediaPayload mediaWrapper = new MediaPayload();
mediaWrapper.Item = items[i];
Fragment fragment = new EhsFragment();
Bundle bundle = new Bundle();
bundle.putSerializable("InterActivityPayload", payload);
bundle.putSerializable("MediaWrapper", mediaWrapper);
fragment.setArguments(bundle);
return fragment;
}
@Override
public int getCount() {
return items.length;
}
@Override
public CharSequence getPageTitle(int position) {
return items[position].Name;
}
}
フラグメントは 500 行以上あるので、ドロップボックス化しました。希望があればインラインで投稿することもできますが、コードが多すぎます。