2016-01-04 3 views
11

これらの使用と使用の違いは何ですか?いつAppCompatViewと通常のAndroidビューを使用するのですか

AppCompatViewのドキュメントの例は次のとおりです。

色合い意識のEditText。これは、レイアウトで EditTextを使用すると自動的に使用されます。あなただけのカスタムビューAppCompatViewのみカスタムビューを使用する必要がありますなぜ

を書くときに、手動でこの クラスを使用する必要があるでしょうか?

similar questionがありますが、私はAppCompatViewをカスタムビューにのみ使用する必要がある理由についての良い説明を探しています。

答えて

7

マテリアルテーマやカスタムアクティビティトランジションのような素材デザインの機能は、Android 5.0(APIレベル21)以上でのみ使用できます。ただし、マテリアルデザインをサポートしていて以前のリリースのAndroid搭載デバイスと互換性のあるデバイスで実行する場合、これらの機能を利用するようにアプリを設計できます。

Que-> AppCompatViewはカスタムビューでのみ使用する必要があります。

Answer - >簡単に言えば、AppCompatViewがmaintaining compatibilityに使用されています。あなたのアプリがTheme.Materialのようにマテリアルテーマを使用していても、別のテーマを提供していない場合、あなたのアプリは5.0より前のAndroidのバージョンでは動作しません。

マテリアルデザインガイドラインに従って設計したレイアウトで、Android 5.0(APIレベル21)で導入された新しいXML属性を使用しない場合は、以前のバージョンのAndroidでも動作します。それ以外の場合は、代替レイアウトを提供することができます。また、Androidの以前のバージョンでのアプリの外観をカスタマイズするための代替レイアウトを提供することもできます。

下位互換性のある素材デザインの作成AppCompatでは、特にそのスタイルとテーマがどのように連携してユーザーインターフェイスを動的に調整しているかを理解すると、Androidアプリケーションがはるかに簡単になります。

AppCompatを使用すると、アセットや下位互換性を利用して時間を浪費することなく、実際にアプリケーションを構築することに時間を費やす必要があります。

現在、Android Studioで作成された新しいプロジェクトには、デフォルトでこのライブラリが組み込まれています。

注:このライブラリは、v4サポートライブラリによって異なります。

以下

あなたはサポートライブラリ注入するので、 "ノーマル" ビューを使用する必要があり、参照あなたのレイアウトで

  1. Android Material Themes Made Easy With AppCompat
  2. Migrating to the AppCompat Library
  3. Getting Material Design for Pre-Lollipop Devices with AppCompat v21
6

のためのいくつかのリンクあり互換コードは自動的に表示されます。 サポートライブラリによって提供されるクラスは、新しいカスタムビューを作成するときにのみ必要です。この場合、新しいプロパティ(色合いなど)を取得するためにAppCompatビューを拡張する必要があります。

+0

はい、なぜそうするために 'AppCompat'ビューを拡張する必要がありますか? –

+0

AppCompatビューは、通常のビューをレイアウトで使用して、通常のビューを置き換えるときにのみ注入されます。通常のビューを拡張すると、AppCompat機能を持たない通常のビューの機能しか持たなくなります。 –

関連する問題