web-dev-qa-db-ja.com

android:Theme.Material.LightにはAPIレベル21が必要です(現在の最小値は8です)

Sdkバージョン8以上のアプリケーションでマテリアルテーマを使用したい。ドキュメントによると、「マテリアルテーマはAndroid 5.0(APIレベル21)以上でのみ使用可能。v7サポートライブラリは、一部のウィジェットのマテリアルデザインスタイルをテーマに提供し、カラーパレットのカスタマイズをサポートします。」プロジェクトにv7 Support Libararyを追加すると、使用できるということですか?このライブラリを追加した後、次のエラーが発生しました:

Android:Theme.Material.LightにはAPIレベル21が必要です(現在の最小値は8)。

それとも、何か間違ったことを理解したのでしょうか?ご提案をいただければ幸いです。前もって感謝します。

40
PPD

このためには、2つの値フォルダーが必要です。

1つはデフォルトで存在し、もう1つはresフォルダーに作成し、values-v21という名前を付ける必要があります。

Styles.xmlのデフォルト値フォルダーで、Materialテーマ以外のテーマを使用し、作成したvalues-v21フォルダーのstyles.xmlで、Materialテーマを使用します。

Androidフォンは、サポートするstyles.xmlを自動的に取得します。電話がマテリアルデザイン(Lollipopデバイス)をサポートしている場合、アプリはマテリアルテーマ(values-21フォルダー)を使用します。

そうでない場合(古いAndroidバージョン)を実行している電話では、デフォルト値フォルダーが使用されます。

41
Hirak Chhatbar

マテリアルデザインを取得するには、Android:theme="@style/Theme.AppCompat.Light"テーマを使用する必要があります。

最小値が8でターゲットが21であることを確認してください。ビルドツール/ sdk 21を使用しています。

33
Pedro Oliveira

Pedro Oliveiraは正しいTheme.AppCompatに関してですが、その答えにはいくつかの重要な情報がありません。

appcompat v21:Lollipop以前のデバイスのマテリアルデザイン!というタイトルのブログ投稿Androidチームは、おそらく21以前のAPIレベルのマテリアルテーマを取得する方法の質問に最もよく答えます。

要約するには、 appcompat-v7依存関係 が必要です。

dependencies {
    ...
    compile "com.Android.support:appcompat-v7:21.0.3"
}

その後、ベーステーマとしてダークバージョンを使用するには、以下を使用します。

<style name="AppTheme" parent="Theme.AppCompat">
</style>

そして、ライトバージョンの場合:

<style name="AppTheme" parent="Theme.AppCompat.Light">
</style>

AppCompatを初めて使用する場合は、次のような知っておくべきことがあります。

すべてのアクティビティは、 ActionBarActivity*。 v4サポートライブラリのFragmentActivityから拡張されるため、フラグメントを引き続き使用できます。

* NB:最近では、ActionBarActivityが廃止され、 AppCompatActivity が採用されました。

しかし、あなたは本当にそのブログ投稿のセットアップセクション全体を読むべきです! (ツールバーとアクションバーの情報、および コメントの一部 も見逃してはならないものです。)

25
Jonik

NameActivity.Javaファイルで、次をインポートします。

import Android.support.v7.widget.Toolbar;

前のコメント:

//import Android.widget.Toolbar;

これで問題は解決しました。

2
Arturo Castro