1. ホーム
  2. android

[解決済み] AppCompatActivityがActionBarActivityより優れている点は何ですか?

2022-04-25 01:54:24

質問

android.support.v7.app.AppCompatActivity が、昨日、最新のv7サポートライブラリに新機能として追加されました。

と言われています。 ActionBarActivity は非推奨となり、新しい AppCompatActivity で、その AppCompatActivity は、サポートライブラリのアクションバー機能を利用するアクティビティのベースクラスです。では、新機能である AppCompatActivity オーバー ActionBarActivity ? 強化の内容 AppCompatActivity を超える ActionBarActivity ? また AppCompatActivity ? どなたか、サンプルを提供していただけませんか?

PS: 一番驚いたのは AppCompatActivity から拡張された android.support.v4.app.FragmentActivity の直接の親クラスです。 ActionBarActivity ! つまり、実際に今 ActionBarActivity ができることなら何でもできます。 AppCompatActivity なぜ、Androidは後者を押し出したのか?

一方、私はブログの記事を見て、次のように述べています: " からリネームされたわけではありません。 ActionBarActivity から AppCompatActivity の内部ロジックは AppCompat を介して利用することができます。 AppCompatDelegate "、で、何が"。 内部ロジック AppCompat ? 何ができるのか AppCompatDelegate を行うのでしょうか?どなたか、この件に関するコードを投稿していただけませんか?

どのように解決するのですか?

クリスが書いたように、新しい非推奨バージョンの ActionBarActivity (を拡張しているもの)。 AppCompatActivity クラス)は、後方互換性のあるクラスとして安全に使用することができます。非推奨というのは、新しい AppCompatActivity を直接使用します。 AppCompatActivity は、より汎用的な新しい実装で AppCompatDelegate クラスは内部的に

新しい開発を始めるのであれば、むしろ新しい AppCompatActivity クラスをすぐに使用することができます。もし、アプリをアップデートする機会があれば、非推奨の ActionBarActivity を新しいアクティビティに置き換えてください。そうでなければ、非推奨のアクティビティのままでも、動作に全く違いはありません。

について AppCompatDelegate を使用すると、アクティビティに新しい色付きウィジェットを追加することができますが、これは AppCompatActivity また ActionBarActivity .

例えば、あるアクティビティを外部ライブラリから継承し、その外部ライブラリは、次のような処理を行います。 ではなく を継承しています。 AppCompatActivity が、このアクティビティに着色された材料ウィジェット(ビュー)を持たせたい場合。これを実現するためには AppCompatDelegate のようなアクティビティーのメソッドをオーバーライドします。 addContentView() , setContentView() などがあります(参照 AppCompatDelegate メソッドの完全なリストは javadoc を参照してください)、これらのオーバーライドされたメソッドの内部で、内側の AppCompatDelegate インスタンスを作成します。 AppCompatDelegate を実行すると、あなたの旧式のアクティビティが実体化されます。