昨日の新機能として、Android.support.v7.app.AppCompatActivity
が最新のv7サポートライブラリに追加されました。
ActionBarActivity
name__は新しいAppCompatActivity
name__のために廃止予定であり、AppCompatActivity
name__はサポートライブラリのアクションバー機能を使用するアクティビティの基本クラスであると言われています。それで、AppCompatActivity
name__に対するActionBarActivity
name__の新機能は何ですか? AppCompatActivity
name__はActionBarActivity
name__に対してどのような機能強化がありますか? AppCompatActivity
name__の利点は何ですか?誰かがいくつかのサンプルを供給できますか?
任意のヒントは大歓迎です。そして事前に感謝します。
シモンズ:私が最も驚いたのは、Android.support.v4.app.FragmentActivity
から拡張されたAppCompatActivity
name__がActionBarActivity
name__の直接の親クラスだということです! ActionBarActivity
name__がAppCompatActivity
name__にできることなら何でもできるのですが、なぜAndroidが後者を押し出したのでしょうか。
一方、「ActionBarActivity
NAME__からAppCompatActivity
NAME__へのリネームではない、AppCompat
NAME__の内部ロジックはAppCompatDelegate
NAME _を介して利用可能です)というブログ記事を見たので、[内部ロジック "of AppCompat
name__? AppCompatDelegate
name__にできることは何ですか?誰かがこれについていくつかのコードを投稿できますか?
Chrisが書いたように、新しい非推奨バージョンのActionBarActivity
(AppCompatActivity
クラスを拡張するもの)は、後方互換クラスを使用するのに安全です。その廃止は、新しいAppCompatActivity
を直接使用するようにお願いするためのヒントにすぎません。 AppCompatActivity
は、内部的にAppCompatDelegate
クラスを使用する、より一般的な新しい実装です。
もしあなたが新しい開発を始めるのであれば、すぐに新しいAppCompatActivity
クラスを使うべきです。アプリを更新する機会がある場合は、廃止予定のActionBarActivity
を新しいアクティビティに置き換えてください。そうでなければあなたは廃止予定の活動を続けることができ、全く行動の違いはありません。
AppCompatDelegate
に関しては、アクティビティ内に新しい色付きのウィジェットを作成することができます。これはAppCompatActivity
でもActionBarActivity
でもありません。
たとえば、外部ライブラリからアクティビティを継承します。外部ライブラリは、AppCompatActivity
から継承したnotを継承しますが、このアクティビティにはマテリアルウィジェット(ビュー)を着色します。これを実現するには、アクティビティ内にAppCompatDelegate
のインスタンスを作成し、addContentView()
、setContentView()
などのアクティビティのメソッドをオーバーライドし(メソッドの完全なリストについてはAppCompatDelegate
javadocを参照)、それらのオーバーライドされたメソッドの内部に呼び出しを転送します。内側のAppCompatDelegate
インスタンス。 AppCompatDelegate
が残りを行い、あなたの "昔ながらの"活動は "実体化"されます。
これは主に名前の変更です:ActionBarActivity
は、実際に行われていることすべてを説明しているわけではありません。望むなら安全にActionBarActivity
を使うことができます。シンボリックリンクのように考えてください。
AppCompatサポートライブラリは、控え目で重要な始まりから始まりました。すべてのAPI 7以降のデバイス用の単一の一貫したアクションバーです。リビジョン21では、新しい責任を引き受けました。それは、マテリアルカラーパレット、ウィジェットの色付け、ツールバーのサポート、その他すべてのAPI 7+デバイスへの提供です。それで、ActionBarActivityという名前は、実際に行ったことの全範囲を実際にはカバーしていませんでした。
http://Android-developers.blogspot.it/2015/04/Android-support-library-221.html
AppCompatActivity
は Android-SDK に導入されました/ Androidサポートappcompatライブラリ 。
AppCompatActivity
は、サポートv4のFragmentActivity
の直接の子クラスおよびActionBarActivity
の直接の親クラスです。
AppCompatActivity
は、 supportライブラリアクションバー featuresを使用するアクティビティの基本クラスです。
APIレベル7以上で実行している場合はアクティビティにActionBar
を追加できます - このクラスをアクティビティ用に拡張し、アクティビティのテーマを Theme.AppCompat または同様のテーマに設定します。
サポートv7 appcompatライブラリに関しては、それは Action Bar /ユーザーインターフェースデザインパターンのサポートを追加します。このライブラリは 材料設計 ユーザインタフェース実装のサポートを含みます。
V7 appcompatライブラリに含まれている主なクラスは次のとおりです。
ActionBar
- アクションバーのユーザーインタフェースパターンの実装を提供します。AppCompatActivity
- Support Libraryアクションバー implementationを使用するアクティビティの基本クラスとして使用できるアプリケーションアクティビティクラスを追加します。AppCompatDialog
- AppCompat をテーマにしたダイアログの基本クラスとして使用できるダイアログクラスを追加します。ShareActionProvider
- アクションバーに含めることができる標準化された共有アクション(電子メールやソーシャルアプリケーションへの投稿など)のサポートを追加します。Android Support Libraries をダウンロードした後、このライブラリは/ extras/Android/support/v7/appcompat /ディレクトリにあります。
以前は、AppCompat
への唯一のエントリポイントは、現在は非推奨のActionBarActivity
クラスによるものでした。残念なことに、これはPreferenceActivity
を使うことを不可能にするようなセットActivity階層を使うことをあなたに強いました。
詳細については、chris banesの support-libraries-v22-1-0 を参照してください。
Androidサポートライブラリの最新リリース22.1では、ActionBarActivity
name__が廃止され、AppCompatActivity
name__がAPIレベル7以降のすべてのデバイスに対して単一の一貫性のあるActionBar
name__をもたらすことを約束しています。