[解決済み] ViewPager が画面外のビューを破壊しないようにする。
2022-06-14 19:40:40
質問
3つのフラグメントを表示しているFragmentPagerAdapterに接続されたViewPagerを持っています。ViewPager は、現在の位置から 1 回以上スワイプしたときに、ホストされているフラグメントのビューを破壊するように見えます。
これらのビューはすべて単純なリストであり、この最適化は完全に不要であるため、無効にしたいと思います。リストにはレイアウト アニメーションが適用されており、破棄して再作成した後にそれらのアニメーションが再生されるため、視覚的な問題を引き起こしています。また、スクロールバーのイントロ アニメーションが毎回表示されるため (スクロール可能であることを示すためにスクロールバーが一時的に表示される)、気が散り、ユーザーの現在のスクロール位置がその過程で失われる可能性があります。
また、最初のスワイプが起こるまで 3 番目のフラグメントをロードしません。これは、各フラグメントが独自のサービス呼び出しを処理し、アクティビティがロードされたときに 3 つすべてを同時に起動させることを好むので、問題があります。3 つ目のサービス呼び出しが遅れるのは、理想的ではありません。
この動作を停止し、メモリ内のすべてのフラグメントを維持するようにViewPagerを説得する方法はありますか?
どのように解決するのですか?
で リビジョン 4 サポート パッケージの ViewPager にメソッドが追加され、デフォルトの 1 ではなく、使用するオフスクリーン ページの数を指定できるようになりました。
あなたのケースでは、3 ページ目にいるときに最初のページが破壊されないように、2 を指定したいのです。
mViewPager = (ViewPager)findViewById(R.id.pager);
mViewPager.setOffscreenPageLimit(2);
関連
-
NetworkOnMainThreadException
-
armeabi-v7a armeabi arm64-v8a パラメータの意味説明
-
IllegalStateException。ArrayAdapter は、リソース ID が TextView である必要があります。
-
WeChatとQQは、他のアプリのオープンリストに自分のアプリを追加し、ファイルパスを取得することができます
-
問題 ---- Android ---- ActivityManager: Error: アクティビティクラス{xx/xx.MainActivity}が存在しない
-
Android Bluetooth 開発の基本プロセス
-
Androidの美しいSeekBarスタイルのカスタマイズ
-
SpinnerのOnItemSelectedListenerのonItemSelectedメソッドの4つのパラメーターの意味
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。
-
[解決済み] 画面下部のビューを揃えるには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
AAPT2エラーについて:詳しくはログをご確認ください。
-
デフォルトのアクティビティが見つからない場合の対処法
-
ジャークとして。起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりません アクティビティ起動中のエラー
-
AndroidStudio3.0 Error:Execution failed for task ':app:processDebugResources'.
-
IllegalStateException。ArrayAdapter は、リソース ID が TextView である必要があります。
-
問題 ---- Android ---- ActivityManager: Error: アクティビティクラス{xx/xx.MainActivity}が存在しない
-
AndroidでListViewを使ってカスタムテーブルを描画する
-
Android Bluetooth 開発の基本プロセス
-
アンドロイドリストビュー
-
Android studio 制約レイアウト ConstraintLayout