14

ICS(APIレベル15)アプリをGingerbread(APIレベル10)と互換性を持たせようとしていますが、属性InflateException Error inflating class <Unknown>を持つレイアウトXMLを取得しています。?android:attr/これらの属性をコメントアウトすると、アプリをコンパイルして実行できますが、もちろん、それは素晴らしいように見えます。

使用しているアイテムのすべてを複製するのではなくandroid.R.attr、別の方法で迷子になっています。

私はActionBarSherlockを使用してActionBarを機能させていますが、サポートライブラリを必要とするものは他に使用していないようです(これを理解しようとする過程でそれを含めましたが)、それはこれらのテーマだけです-私が立ち往生しているベースのリソース。

私が使用しているテーマリソースのいくつかは次のとおりです。

?android:attr/textColorSecondaryInverse ?android:attr/textAppearanceLarge ?android:attr/dividerVertical ?android:attr/selectableItemBackground ?android:attr/textAppearanceMedium ?android:attr/dividerVertical ?android:attr/dividerHorizontal

4

3 に答える 3

12

API 11 のスタイルを使用するには、具体的には android:attr/textAppearanceMedium ?android:attr/dividerVertical ?android:attr/dividerHorizo​​ntal

最も簡単な方法は、必要な場所で次のコードを使用することです

<!-- For Horizontal Line-->
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_marginLeft="4dip"
android:layout_marginRight="4dip"
android:background="#aaa"
android:layout_alignParentTop="true"/>

<!-- For Vertical Line-->

<View
android:id="@+id/VerticalLine"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_marginBottom="4dip"
android:layout_marginTop="4dip"
android:background="#aaa"/>
于 2013-02-01T18:09:49.133 に答える
11

ドキュメントにあるように、一部のスタイルはより高い API にあります。例えば:

  • dividerVerticalAPI 11 以降
  • dividerHorizontalAPI 11 以降

?マークは、現在のテーマのスタイルを参照するために使用されます。

問題に対処するには、次のことができます。

  • API 11 のスタイルを使用しますが、それらをフォルダーに配置し、古い API のカスタム値または異なる属性を使用しvalues-v11て古いバージョンのスタイルをサポートします。values
  • ICS から必要なスタイルをコピーする
  • これらのスタイルを使用しないでください
  • カスタム スタイルを使用する

それはあなたの目的によって異なります。アプリケーションのネイティブ スタイルが重要な場合、最初の提案は理にかなっています。
Holo スタイルをあらゆる場所に配置したい場合は、それをコピーして、すべてのプラットフォームで 1 つのスタイルとして使用するしかありません。
このプロジェクトを見てみましょう: https://github.com/Prototik/HoloEverywhere

于 2012-07-08T12:34:26.900 に答える