1

Androidライブラリに変換したいAndroidアプリがあります。このアプリは、XMLレイアウト全体に画面全体をカバーするWebビューのみが含まれる1つのアクティビティに基づいています。ライブラリUI(実際にはWebビューのみ)を他のアプリのレイアウトに統合する必要があります。たとえば、1つの親アプリにはタブ構造があります。ライブラリのWebビューをタブの1つに表示し、タブは常に画面の下部に表示されるようにしたいと思います。通常、アプリとライブラリの境界をアクティビティレベルで設定することを選択しますが、この場合は機能しません。ライブラリから新しいアクティビティをポップアップすることはできません。これは、のすべての画面とタブをカバーするためです。下。

親アプリのタブ構造内で機能するように、これをライブラリに変換する最良の方法は何ですか?アプリとライブラリの境界はどこにあるべきですか?私のアイデアのいくつかは次のとおりです。

  1. ライブラリユーザーに、好みのカスタムレイアウト(この場合はタブ)を使用してアクティビティを作成させます。レイアウトにWebビューが含まれていることを確認してください。findViewByIdを使用してwebviewオブジェクトを取得し、このオブジェクトをライブラリに渡して、ライブラリがページの表示に使用できるようにします。ここでの主な欠点は、ライブラリの一部が一部のブロードキャストレシーバーを親アクティビティ(このシナリオでは実際にはライブラリの一部ではない)に接続する必要があることです。この結合はかなり疑わしいようです。

  2. おそらく、Android3.0で導入されたフラグメントを使用してください。ただし、これらは主にタブレットを対象としているようです。この場合、これらは機能しますか?

  3. 私が知らないAndroid2.1+と互換性のある別のオプションはありますか?

4

1 に答える 1

0

互換性ライブラリを使用して、Fragmentsを使用することにしました。

http://developer.android.com/guide/topics/fundamentals/fragments.html
http://developer.android.com/sdk/compatibility-library.html

この場合、フラグメントは実際に最良の選択です。理由は次のとおりです。

  1. アクティビティと同様のライフサイクルを持っているため、変換が容易です。
  2. これらは、関連する機能を備えたUIのチャンクであり、まさにこの場合に必要なものです。
于 2012-01-04T19:34:49.867 に答える