新しい BottomNavigationView を既存のプロジェクトに統合しています。このウィジェットで (フラグメントの代わりに) アクティビティを使用するためのクリーンでスムーズな方法 (UX に関して) があるかどうか疑問に思います。複雑なアクティビティがありますが、このイテレーションでは変更したくありません。関心が分離されているため、まったく変更しないことが望ましいです。次のアプローチを使用してアクティビティを使用することができましたが、不安定で、タブを変更する前にアクティブなタブインジケーターがリセットされているようです。
現在、基本アクティビティに下部ナビゲーション下部(公開、保護)があります(他のすべてのアクティビティはこのクラスを拡張します)。アイテムを選択したリスナーで、アクティビティ遷移を使用して他のアクティビティを開始します (現在のアクティビティの下部のナビゲーション ビューを他の (新しい) アクティビティの同じビューにフェードするため)。
Bundle transition = ActivityOptionsCompat.makeSceneTransitionAnimation(
getActivity(), bottomNavigationView, TRANSITION_NAME).toBundle();
そして、このバンドルを startActivity() メソッドに渡します。また、よりスムーズな遷移のために overridePendingTransition() を呼び出しますが、全体としてまだ不安定であり、前述のように、アクティブなタブ インジケーターに問題があります。言うまでもなく、ビューのチェック状態を自分で変更する必要があります。私のおもちゃのプロジェクトでは、これを次の方法で行います (私のアクティビティの OnCreate() で):
bottomNavigationView.getMenu().getItem(1).setChecked(false);
bottomNavigationView.getMenu().getItem(2).setChecked(false);
bottomNavigationView.getMenu().getItem(3).setChecked(false);
bottomNavigationView.getMenu().getItem(4).setChecked(false);
bottomNavigationView.getMenu().getItem(0).setChecked(true);
スムーズなユーザー エクスペリエンスでアクティビティを使用する方法はありますか?