1

?android:attr/API 7でxml要素を使用するにはどうすればよいですか?API 15の場合は期待どおりに機能しますが、古いものはエラーをスローします。

<TextView
    ...
        android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
        android:paddingRight="?android:attr/listPreferredItemPaddingRight"
        android:minHeight="?android:attr/l  istPreferredItemHeightSmall" />
4

2 に答える 2

0

(14)で紹介されたICSので、以前のバージョンでは使えないと思いますAndroid。あなたはいつでも彼らが指している値(または参照)を見て、それらをあなたに直接使用しViews、Androidの異なるバージョンに異なるレイアウトを提供することができます。

于 2012-05-20T15:35:24.950 に答える
0

最小APIレベル7をターゲットにしているが、API 15からのサポートによっては、多くの場合、それは機能しません。

低いAPIと高いAPIの間でうまく変換される属性がいくつかあると言いましたが、多くは対応するAPIサポートに依存しているため、それをテストする必要があります。

私のアプローチは、最も低いAPIを選択することでしたが、より高いAPIでビルドし、より高いレベルのサポートを利用できるようにするより低いAPIのサポートパッケージを含めます(たとえば、フラグメント)

問題が発生するかどうかを確認するには、マニフェストで最小APIを7に設定し、プロジェクトのAndroidプロパティにAPI15を追加します。

次に、API 7を使用してエミュレーターをビルドしてデプロイします。それがうまく機能する場合は、両方のプラットフォームをサポートするために達成しようとしていることを実行する別の方法を見つける必要があります。

APIレベルごとに異なるレイアウトを作成することもできます。また、実行時にクラス/メソッドがサポートされているかどうかを確認してから使用することもできますが、コードに多くのオーバーヘッドが追加される可能性があります。

含めるのは非常に簡単であり、サポートするために選択した最低レベルでは機能しないが、エミュレーターのテストで実行されないAPIがあるため、これには注意が必要です。

それをしなければならないと感じたときの私のアプローチは、最低のAPIレベル(プロジェクトのAPIプロパティ)でコンパイルし、そのようなすべてのケースがコードで、バージョン管理レイアウトによって認識および処理されていること、または理解されて実行されていることを確認することです

次に、上位のAPIに切り替えます。これを行うには、訓練を受ける必要があります。そうしないと、リリースでクラッシュするリスクがあります。正直なところ、ほとんどの場合、x-apiの回避策を見つけることができるため、努力する価値はありませんが、ケースはそれぞれ異なります。

于 2012-05-20T15:40:43.627 に答える