[解決済み] FragmentPagerAdapterのgetItemが呼び出されない
2022-07-28 14:18:54
質問
FragmentPagerAdapterでフラグメントを再利用できません。destroyItem()メソッドを使うと、フラグメントは削除されますが、getItem()が再度呼び出されることはありません。
public class ExamplePagerAdapter extends FragmentPagerAdapter {
ArrayList < String > urls;
int size = 0;
public ExamplePagerAdapter(FragmentManager fm, ArrayList < String > res) {
super(fm);
urls = res;
size = urls.size();
}
@Override
public int getCount() {
if (urls == null) {
return 0;
} else {
return size;
}
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
FragmentManager manager = ((Fragment) object).getFragmentManager();
FragmentTransaction trans = manager.beginTransaction();
trans.remove((Fragment) object);
trans.commit();
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new FloorPlanFragment();
Bundle b = new Bundle();
b.putInt("p", position);
b.putString("image", urls.get(position));
Log.i("image", "" + urls.get(position));
fragment.setArguments(b);
return fragment;
}
}
そしてFragmentActivityで。
pager.setAdapter(new ExamplePagerAdapter(getSupportFragmentManager(), res2));
どのように解決するのですか?
KISSの答えです。
簡単な使い方 FragmentStatePagerAdapter の代わりに フラグメントページャーアダプター .
私は答えを得ました。まず、私は非常に愚かな間違いをやっているので、この質問を削除することを考えたが、この答えは同じ問題に直面している誰かの助けになるであろう。
FragmentPagerAdapter
の代わりに
FragmentStatePagerAdapter
.
コメントで@BlackHatSamuraiさんがおっしゃっているように。
これがうまくいく理由は
FragmentStatePagerAdapter
を破棄するからです。 を、使われていないフラグメントとして破棄するからです。FragmentPagerAdapter
では破壊しません。
関連
-
[解決済み】Looper.prepare()を呼び出していないスレッド内でハンドラを作成できない。)
-
[解決済み] FragmentでonActivityResultが呼び出されない
-
[解決済み】FragmentPagerAdapterとFragmentStatePagerAdapterの違いは何ですか?
-
[解決済み】ViewPagerを動的に更新しますか?
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] Android ConstraintLayout - あるビューを別のビューの上に配置する
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] EditTextをReadOnlyにする
-
[解決済み] 画面上のダイアログの位置を変更する android
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アンドロイドアプリのユーザーデータを消去する
-
[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] ProjectScopeServices に Factory タイプのサービスはありません。
-
[解決済み] アダプタからActivityメソッドを呼び出す
-
[解決済み] AsyncTaskLoaderとAsyncTaskの比較
-
[解決済み] WhatsAppでメッセージを送信する
-
[解決済み] <string> XMLで改行やタブを作るには(eclipse/android)?
-
[解決済み] クリアリング・インテント
-
[解決済み] 画面上のダイアログの位置を変更する android