Android Studioで設定画面を実装する方法|BottomNavigationを隠して表示する

アプリ開発

Android StudioでBottomNavigationActivityを使用している場合、設定画面(SettingsFragmentCompat)を独立した画面として表示し、BottomNavigationViewを非表示にする方法を紹介します。

BottomNavigationActivityの構造

通常、BottomNavigationActivityではActivityが1つあり、その中でFragmentを切り替えて表示します。設定画面もFragmentとして実装できますが、以下のような問題が発生することがあります。

  • BottomNavigationViewが設定画面でも表示されてしまう
  • 設定画面でボトムバーを非表示にしたいが、ナビゲーションの機能は維持したい

設定画面の作成と表示方法

1. SettingsFragmentCompatの作成

まず、設定画面を表示するFragmentを作成します。

public class SettingsFragment extends PreferenceFragmentCompat {
    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        setPreferencesFromResource(R.xml.preferences, rootKey);
    }
}

2. 設定画面を表示するボタンを追加

メニューに設定ボタンを追加するには、res/menuディレクトリにmenu_main.xmlを作成し、以下のように設定します。

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/action_settings"
        android:title="設定"
        android:icon="@drawable/ic_settings"
        android:showAsAction="always" />
</menu>

3. ボタンを押した際に設定画面へ遷移

Activityでメニューのクリックイベントを処理し、SettingsFragmentを表示します。

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if (item.getItemId() == R.id.action_settings) {
        getSupportFragmentManager().beginTransaction()
            .replace(R.id.fragment_container, new SettingsFragment())
            .addToBackStack(null) // 戻るボタンで元の画面に戻るため
            .commit();
        findViewById(R.id.bottom_navigation).setVisibility(View.GONE); // ボトムバーを非表示
        return true;
    }
    return super.onOptionsItemSelected(item);
}

4. 設定画面から戻った際にボトムバーを再表示

設定画面を閉じたときにBottomNavigationViewを再表示するには、OnBackStackChangedListenerを使用します。

getSupportFragmentManager().addOnBackStackChangedListener(() -> {
    if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
        findViewById(R.id.bottom_navigation).setVisibility(View.VISIBLE);
    }
});

まとめ

Android StudioのBottomNavigationActivityで設定画面を実装する際、以下のポイントを押さえることで、スムーズに遷移できます。

  • 設定画面はPreferenceFragmentCompatで作成
  • メニューにボタンを追加し、クリック時にFragmentを切り替える
  • 設定画面を開く際にBottomNavigationViewを非表示にし、閉じたら再表示する

この方法を活用して、設定画面をスムーズに実装しましょう。

コメント

タイトルとURLをコピーしました