[解決済み] フラグメントを用いたAndroidの各タブ毎のバックスタックの分離
質問
Androidアプリでナビゲーションのためのタブを実装しようとしています。TabActivityとActivityGroupは非推奨なので、代わりにFragmentを使って実装したいのですが、可能でしょうか?
各タブに1つのフラグメントを設定し、タブがクリックされたときにフラグメントを切り替える方法は知っています。しかし、タブごとに個別のバックスタックを持つにはどうすればよいですか?
例えば、フラグメントAとBはタブ1の下に、フラグメントCとDはタブ2の下に配置します。アプリを起動すると、フラグメントAが表示され、Tab1が選択されています。Tab2が選択されると、Fragment Cが表示されるはずです。Tab1 を選択すると、再び FragmentB が表示されます。このとき、バックボタンでフラグメントAを表示させることができるはずです。
また、デバイスを回転させても、各タブの状態が維持されることが重要です。
BR マーチン
解決方法は?
現在、フレームワークが自動的にこれを行うことはありません。 各タブごとに独自のバックスタックを構築し、管理する必要があります。
正直なところ、これは本当に疑わしいことだと思います。 まともなUIになるとは思えません。もしバックキーが今いるタブによって異なる動作をするなら、特にバックキーがスタックの一番上にあるときにアクティビティ全体を閉じるという通常の動作もするとしたら・・・嫌な予感がしますよね。
WebブラウザーのUIのようなものを作ろうとしている場合、ユーザーにとって自然なUXを得るためには、コンテキストに応じて動作を微妙に調整する必要があります。したがって、フレームワークのデフォルト実装に依存するのではなく、独自のバックスタック管理を行う必要があります。 たとえば、標準的なブラウザに出入りするさまざまな方法において、バックキーがどのように作用するかに注目してください。 (ブラウザの各ウィンドウは本質的にタブです)。
関連
-
[解決済み】フラグメントMyFragmentがアクティビティにアタッチされない。
-
aapt2エラー:ログを確認する(具体的な原因の探り方)
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
[解決済み] フラグメントのインスタンス状態をバックスタックに正しく保存する方法は?
-
[解決済み] Twitter Bootstrapのタブ:ページの再読み込みやハイパーリンクで特定のタブに移動する
-
[解決済み] com.google.android.gms.maps.MapFragment の ID、タグ null、または親 ID が別のフラグメントと重複しています。
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】FragmentPagerAdapterとFragmentStatePagerAdapterの違いは何ですか?
-
[解決済み】フラグメントを使用してバックスタックをクリアする
-
[解決済み] フラグメント使用時のAndroid Navigation Drawerの画像とUpキャレットの切り替えについて
最新
-
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エラーについて:詳しくはログをご確認ください。
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
ActivityはOnFragmentInteractionListenerを実装しなければならないに関する質問
-
telnet'が内部コマンドまたは外部コマンドとして認識されない 解決方法
-
プロセス 'command 'F:\sdkbuild-tools', 26.0.2 AAAPT.exe' finished with non-zero exit value 1
-
Android ProgressBarの色を変更する
-
Android ProgressBarのスタイルカラーを変更する
-
Android Get set image.setImageResource(R.drawable.xxx) リソース
-
AndroidStudioのショートカット 検索/置換
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について