私のAndroidアプリは現在、4つのタブを持つTabActivityを使用しています。また、これら 4 つのタブに簡単に移動できるようにするサード パーティ製のナビゲーション ドロワーも使用しています。タブがあるのに、なぜナビゲーション ドロワーがあるのでしょうか。これは私の組織が望んでいたことです。このアプリは現在、タブレットもサポートしていません。
ここで、アプリをゼロからやり直します。今回はタブレットのサポートも追加する必要があります。Google と Fragments が提供する新しい Navigation Drawer を見てきました。TabActivity は非推奨になったため、これをもう使用したくありません。Google は、代わりにフラグメントを使用することを提案しています。ナビゲーション ドロワーやフラグメントなど、Google が提供するツールは非常に強力なツールですが、アプリを構築するのに苦労しています。
アプリには 4 つのメイン タブがあり、これらすべてのタブにはナビゲーション ドロワーが必要です。ただし、これは共通のナビゲーション ドロワーである必要があります。このナビゲーションに表示される項目には、これら 4 つの表示に移動するためのリンクが含まれているだけでなく、他の機能も追加されています。
添付の画像からわかるように、4 つのタブのうち 3 つが ListActivity から直接開始されます。それらはすべて異なる情報を保持し、ユーザーはあるアクティビティから別のアクティビティに移動できる必要があるため、3 つの異なるアクティビティである必要があります。
ユーザーがリストのアイテムをクリックすると、詳細ビュー (詳細アクティビティ) に移動します。この詳細アクティビティにも、親アクティビティ (ListActivity) と同じナビゲーション ドロワーが必要です。その上に、このビューはさらに 4 つのアクションを新しいアクションとしてナビゲーション ドロワーに追加します。このビューには、右から左に開く引き出しも必要です。
ユーザーが 4 つのタブすべてをナビゲートして詳細ビュー (詳細アクティビティ) にいる場合、ユーザーは listActivity でクリックした項目に応じて異なるデータを表示できるはずです。
ナビゲーションドロワーを保持する抽象基本アクティビティクラスを使用してこれを行うと考えていました。すべてのアクティビティがそれらを使用します。また、電話とタブレットの両方で機能するように、マスター/詳細フロー パターンを使用するつもりでした。しかし、ナビゲーション ドロワーを使用するためにベース アクティビティを拡張できないことがわかった後、この計画は打ち切られました。
この時点で、私は何をすべきか迷っています。どんな提案でも大歓迎です。