ActionBarActivity に対する AppCompatActivity の強化点は何ですか? 質問する

ActionBarActivity に対する AppCompatActivity の強化点は何ですか? 質問する

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

ActionBarActivityは新しい に取って代わられ、AppCompatActivityサポートAppCompatActivityライブラリのアクション バー機能を使用するアクティビティの基本クラスになったと言われています。では、 の新機能は何でしょうか? にはどのような機能強化が加えられていますか? の利点は何でしょうか? 誰かサンプルをいくつか提供してもらえませんか?AppCompatActivityActionBarActivityAppCompatActivityActionBarActivityAppCompatActivity

追伸:私が一番驚いたのは、AppCompatActivityから拡張された が のandroid.support.v4.app.FragmentActivity直接の親クラスだということですActionBarActivity。つまり、実際に でできることはActionBarActivityすべて でできるのにAppCompatActivity、なぜ Android は後者を押しのけたのでしょうか。

一方、私は次のようなブログ記事を見ました。「ActionBarActivityこれは からへの名前変更ではなくAppCompatActivity、 の内部ロジックはAppCompat以下から利用できます。AppCompatDelegate「では、内部ロジック「のAppCompat?何ができるでしょうかAppCompatDelegate?誰かこれに関するコードを投稿してもらえませんか?」

ベストアンサー1

ActionBarActivityChris が書いたように、 (クラスを拡張する)の非推奨バージョンの new は、下位互換性のあるクラスとして安全に使用できます。その非推奨は、代わりにAppCompatActivitynew を直接使用するように求めるためのヒントにすぎません。は、クラスを内部的に使用する、新しい、より汎用的な実装です。AppCompatActivityAppCompatActivityAppCompatDelegate

新しい開発を開始する場合は、新しいAppCompatActivityクラスをすぐに使用する必要があります。アプリを更新する機会がある場合は、非ActionBarActivity推奨のアクティビティも新しいアクティビティに置き換えてください。それ以外の場合は、非推奨のアクティビティをそのまま使用しても、動作に違いはありません。

に関しては、またはAppCompatDelegateではないアクティビティに新しい色付きウィジェットを追加できます。AppCompatActivityActionBarActivity

例えば、外部ライブラリからアクティビティを継承すると、ないを継承しますAppCompatActivityが、このアクティビティに色付きのマテリアル ウィジェット (ビュー) を持たせたいとします。これを実現するには、AppCompatDelegateアクティビティ内に のインスタンスを作成し、 などのそのアクティビティのメソッドをオーバーライドしますaddContentView()(setContentView()メソッドAppCompatDelegateの完全なリストについては javadoc を参照)。オーバーライドされたメソッド内で、呼び出しを内部インスタンスに転送しますAppCompatDelegateAppCompatDelegateが残りの処理を行い、「旧式の」アクティビティが「実現化」されます。

おすすめ記事