[解決済み] フラグメントを使ったアクションバーアップナビゲーション
2023-02-12 16:22:45
質問
私はタブ付きのActionbar/viewpagerレイアウトを持っていて、3つのタブがあります。 A , B であり、かつ C . タブでは C タブ(fragment),私は別のフラグメントを追加しています。 D とします。
DFragment f= new DFragment();
ft.add(android.R.id.content, f, "");
ft.remove(CFragment.this);
ft.addToBackStack(null);
ft.commit();
DFragmentのonResumeのactionbarを修正して、upボタンを追加しています。
ActionBar ab = getActivity().getActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
ab.setDisplayHomeAsUpEnabled(true);
ab.setDisplayShowHomeEnabled(true);
現在、DFragmentで、ハードウェア(電話)のBackボタンを押すと、CFragmentを選択した状態で、元のTabbed(ABC)レイアウトに戻ります。この機能をアクションバーの上ボタンで実現するにはどうしたらよいでしょうか。
どのように解決するのですか?
実装
OnBackStackChangedListener
を実装し、このコードをFragment Activityに追加してください。
@Override
public void onCreate(Bundle savedInstanceState) {
//Listen for changes in the back stack
getSupportFragmentManager().addOnBackStackChangedListener(this);
//Handle when activity is recreated like on orientation Change
shouldDisplayHomeUp();
}
@Override
public void onBackStackChanged() {
shouldDisplayHomeUp();
}
public void shouldDisplayHomeUp(){
//Enable Up button only if there are entries in the back stack
boolean canGoBack = getSupportFragmentManager().getBackStackEntryCount()>0;
getSupportActionBar().setDisplayHomeAsUpEnabled(canGoBack);
}
@Override
public boolean onSupportNavigateUp() {
//This method is called when the up button is pressed. Just the pop back stack.
getSupportFragmentManager().popBackStack();
return true;
}
関連
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] getApplication()、getApplicationContext()、getBaseContext()、someClass.thisの違いと使い分け。
-
[解決済み] Androidのソースコードにある@hideの意味とは?
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] 文字サイズとアンドロイドの画面サイズの違い
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] AndroidでTextViewの下にアンダーラインを引くには
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] Android APKファイルの中身を見るには?
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] フラグメント使用時のAndroid Navigation Drawerの画像とUpキャレットの切り替えについて
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] Androidのソースコードにある@hideの意味とは?
-
[解決済み] Android ConstraintLayout - あるビューを別のビューの上に配置する
-
[解決済み] アンドロイドアプリのユーザーデータを消去する
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] TabLayoutに対応したandroidデザインでタブテキストのフォントを変更する
-
[解決済み] PendingIntentの "requestCode "は何に使うのですか?
-
[解決済み] WhatsAppでメッセージを送信する