125

Android >= 4.0 をサポートするアプリを開発しています。android.appパッケージのフラグメントを使用します。4.0 の古いフラグメント実装の問題に直面しているため、これはサポート ライブラリで既に修正されています。より信頼性が高く一貫した実装を得るために、サポート ライブラリからフラグメント実装に戻すことを検討しています。

これについてどう思いますか。Android 4 向けに開発する場合、サポート ライブラリのフラグメントは既に利用可能ですが、それを使用していますか?

4

5 に答える 5

90

私の経験から、すべての Android デバイスで同じフラグメント実装を使用することは大きな利点です。状態がネイティブ フラグメントを使用して Android 4.0 に保存されている場合、すべての NullPointerExceptions を取り除くことができませんでした。サポート ライブラリを使用すると、それらはすべてなくなります。また、このアプローチでは、これまでのところ不利な点は見られませんでした。

したがって、私自身の質問に対する私の答えは次のとおりです。Android 4.x 向けに開発する場合、サポート ライブラリのフラグメントを使用することをお勧めします。サポート ライブラリには、古いフラグメント実装にまだ存在するバグが修正されており、より多くのバグ修正で頻繁に更新されます。

于 2013-06-29T09:37:01.537 に答える
40

しばらくの間 を使い続ける大きな理由の 1 つは、API 17 までSupportFragmentは にアクセスできないことですChildFragmentManager。サポート ライブラリは、子フラグメント マネージャーのサポート バージョンを提供します。

他のフラグメントを含むフラグメントがある場合、これは大きな問題になります。これは、かなり複雑なタブレット アプリケーションや、全体的なアーキテクチャがタブ付きレイアウトに基づいているか、ナビゲーション ドロワーを使用している場合によく見られます。

于 2014-08-18T00:50:35.683 に答える
21

Android 4.0以降をターゲットにしているにもかかわらず、サポートライブラリを含める必要があることにも不満を感じていましたが、公式に推奨されているようです:

Android サポート ライブラリ パッケージには、アプリケーションに含めることができるいくつかのライブラリが含まれています。これらの各ライブラリは、特定の範囲の Android プラットフォーム バージョンと一連の機能をサポートしています。

このガイドでは、サポート ライブラリによって提供される重要な機能とバージョン サポートについて説明し、アプリケーションに含める必要があるものを決定するのに役立ちます。一般に、v4 サポート ライブラリと v7 appcompat ライブラリを含めることをお勧めします。これらのライブラリは幅広い Android バージョンをサポートし、推奨されるユーザー インターフェース パターンの API を提供するためです。

http://developer.android.com/tools/support-library/features.html

于 2015-03-20T04:24:13.130 に答える
4

4.0 のみの開発を計画している場合は、実行可能ファイルが小さくなるため、ネイティブ ライブラリを使用することをお勧めします。初期のバージョンでバグの問題に遭遇する可能性があることは事実ですが、これらのほとんどは回避するのがかなり簡単であると思います。また、互換性ライブラリは、とにかく 4.0 以降で実行している場合に備えて、ネイティブ フラグメントにマップすることになっています。いずれにせよ、この種の問題に苦労しなければならないことになるかもしれません。サポート ライブラリの問題は、多くのクラスが 2 倍 (サポート パッケージ構造で 1 回、「ネイティブ」パッケージ構造で 1 回) 表示されるため、開発が少し面倒になることです。

ただし、4.0 より前のアプリもリリースしたい場合は、サポート ライブラリを回避する方法はありません。また、全ユーザーの約 38% が 2.3 を使用しているため、この OS バージョンを含めることはビジネス上意味があるかもしれません。このような場合は、サポート ライブラリを Jake Wartons ActionBarSherlock (または、最終的にリリースされた Google サポート ActionBar ライブラリ) と組み合わせて使用​​できます。

于 2013-06-26T07:09:14.093 に答える
2

ここに記載があったので今はサポートライブラリを使った方が良さそうですhttps://developer.android.com/reference/android/app/Fragment.html

このクラスは、API レベル P で廃止されました。サポート ライブラリ フラグメントを使用して、すべてのデバイスで一貫した動作を実現し、Lifecycle にアクセスします。

于 2018-03-08T10:35:21.923 に答える