1

ここに画像の説明を入力

私のAndroidアプリは現在、4つのタブを持つTabActivityを使用しています。また、これら 4 つのタブに簡単に移動できるようにするサード パーティ製のナビゲーション ドロワーも使用しています。タブがあるのに、なぜナビゲーション ドロワーがあるのでしょうか。これは私の組織が望んでいたことです。このアプリは現在、タブレットもサポートしていません。

ここで、アプリをゼロからやり直します。今回はタブレットのサポートも追加する必要があります。Google と Fragments が提供する新しい Navigation Drawer を見てきました。TabActivity は非推奨になったため、これをもう使用したくありません。Google は、代わりにフラグメントを使用することを提案しています。ナビゲーション ドロワーやフラグメントなど、Google が提供するツールは非常に強力なツールですが、アプリを構築するのに苦労しています。

アプリには 4 つのメイン タブがあり、これらすべてのタブにはナビゲーション ドロワーが必要です。ただし、これは共通のナビゲーション ドロワーである必要があります。このナビゲーションに表示される項目には、これら 4 つの表示に移動するためのリンクが含まれているだけでなく、他の機能も追加されています。

添付の画像からわかるように、4 つのタブのうち 3 つが ListActivity から直接開始されます。それらはすべて異なる情報を保持し、ユーザーはあるアクティビティから別のアクティビティに移動できる必要があるため、3 つの異なるアクティビティである必要があります。

ユーザーがリストのアイテムをクリックすると、詳細ビ​​ュー (詳細アクティビティ) に移動します。この詳細アクティビティにも、親アクティビティ (ListActivity) と同じナビゲーション ドロワーが必要です。その上に、このビューはさらに 4 つのアクションを新しいアクションとしてナビゲーション ドロワーに追加します。このビューには、右から左に開く引き出しも必要です。

ユーザーが 4 つのタブすべてをナビゲートして詳細ビュー (詳細アクティビティ) にいる場合、ユーザーは listActivity でクリックした項目に応じて異なるデータを表示できるはずです。

ナビゲーションドロワーを保持する抽象基本アクティビティクラスを使用してこれを行うと考えていました。すべてのアクティビティがそれらを使用します。また、電話とタブレットの両方で機能するように、マスター/詳細フロー パターンを使用するつもりでした。しかし、ナビゲーション ドロワーを使用するためにベース アクティビティを拡張できないことがわかった後、この計画は打ち切られました。

この時点で、私は何をすべきか迷っています。どんな提案でも大歓迎です。

4

1 に答える 1

0

あなたは間違った方法で考えています。アプリを構築する方法は、フラグメント ベース (すべての画面のアクティビティ) です。代わりに、新しいインタラクション フローがある場合にのみ、新しいアクティビティを作成する必要があります (説明したことには気づきませんでした)。したがって、基本的には各画面にフラグメントを使用し、それらを再利用できるようにできるだけ抽象化します。この場合、アクティビティは 1 つだけで、フラグメントのインとアウトを切り替えるだけです。これにより、統一されたナビゲーション ドロワーの実装がはるかに簡単になります (実際にこれを行う必要がある唯一の方法です)。

お役に立てば幸いです。喜んで何かを明確にしてください。私が最初にフラグメントに切り替えたときは混乱したことを覚えていますが、特に携帯電話やタブレット向けの開発を始めると、はるかに簡単になりました.

于 2013-09-25T01:57:34.807 に答える