イントロ:
基本的な「フラグメントチュートリアル」パターンは次のようになります。
- タブレットでは、左側にリスト、右側に詳細があります。
- 両方とも
Fragments
同じ場所にありActivity
ます。 - 電話では、リスト
Fragment
を1つにまとめActivity
ます。 Activity
詳細を指定して新しいものを起動しFragment
ます。
(例:Dianne HackbornによるAndroid 3.0 Fragments APIとFragments APIガイド)
どちらのデバイスでも、機能はにありFragments
ます。(シンプル)
で、タブレット、全体のアプリがある1Activity
に、携帯電話がある多くのActivities
。
質問:
- 電話アプリを多数に分割する理由はあり
Activities
ますか?
この方法の1つの問題は、メインのTablet と別のPhoneで多くのロジックを複製することです。Activity
Activities
- 両方のケースで1アクティビティモデルを保持する方が簡単で、同じロジックを使用して切り替え
Fragments
ます(異なるレイアウトを使用するだけ)。
このようにして、ほとんどのロジックはFragments
それ自体に存在し、Activity
コードの重複が1つだけ少なくなります。
また、私が読んだのActionBarSherlock
は、それがではFragments
なく、最もうまく機能しているように見えるということですActivities
(ただし、まだ機能していません)。
チュートリアルは単純化しすぎていますか、それともこのアプローチで重要な何かを見逃しましたか?
私たちはオフィスで両方のアプローチを成功させました-しかし、私はより大きなプロジェクトを開始しようとしていて、できるだけ自分のために物事を簡単にしたいと思っています。
関連する質問へのリンク:
- ジレンマ:フラグメントvsアクティビティを使用する場合:
- アクティビティ遷移と動的フラグメントを使用するパターン
- Android-フラグメントとアクティビティおよびビューの説明が必要です
- Androidのアクティビティまたはフラグメント?
- 複数のフラグメントとアクティビティの相互作用設計
- では、Android 3.0のフラグメントの正確な利点は何ですか?
アップデート
質問の報奨金を開始しました-タブレットアクティビティと各電話アクティビティでアプリロジックを複製する必要がある理由についてまだ確信がありません。
また、Squareのメンバーによる興味深い記事も見つかりました。これは一見の価値があります。
onItemSelected()
は、アクティビティにメソッドがあることに同意しません。私の「実際の」アプリには、多くのリストとサブリストがあります。このパターンは、私のタブアクティビティにonItemSelected()
各リストを処理するメソッドが必要であることを示唆しています。さらに、Phoneアクティビティには、それぞれ同じロジックが複製されている必要があります。私見では、項目選択ロジックを各フラグメントに配置する方がはるかに優れています。重複はなく、私はその方法でコードを構造化することを好みます。これがお役に立てば幸い