ターゲットAPIを15としてアプリを開発しました。レイアウトにはグリッドレイアウトが含まれています。ターゲットAPIを10に変更すると、グリッドレイアウトと別の要素「スペース」で問題が発生します。Eclipseは、2.3.3のサポートライブラリをダウンロードするように促します。これは私が行いました...しかし、まだ問題があります。
3 に答える
GridLayout
確かに、APIレベル7以上と互換性があるようにバックポートされています。これは(一種の)サポートライブラリの一部です。サポートライブラリをダウンロードすると、次の場所にあるローカルのsdkフォルダーにAndroidライブラリプロジェクトが見つかります。
<sdk_folder>\extras\android\compatibility\v7\gridlayout
作業中のプロジェクトの依存関係として設定します。その後、ICS以前のデバイスをサポートするために、プロジェクト全体の参照をレベル15バージョンからこの互換性バージョンに変更する必要があります。レイアウトファイルで、xmlをGridLayoutからandroid.support.v7.widget.GridLayoutに変更します。使用法は、同一ではないにしても、類似している必要があります。
ウィジェットについて:私は実際にはこれを(まだ)使用していませんが、既存のビューにマージン/パディングを設定するか、完全に透過的なSpace
独自のジェネリックを追加することで置き換えることができるようです。View
Android Studioを使用している場合は、サポートライブラリ(@MH。で説明)をダウンロードしたら、を使用する必要がありますFile->Import Module...
。次に、GridLayoutサポートの場所を選択します。これは私にとっては次の場所にあります<sdk_folder>\extras\android\support\v7\gridlayout
。
<Gridlayout>
次に、 xmlレイアウトファイルで使用する代わりに、を使用します<android.support.v7.widget.GridLayout>
。次に例を示します。
<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:useDefaultMargins="true"
app:alignmentMode="alignBounds"
app:columnOrderPreserved="false"
app:columnCount="4"
>
上記および子要素で見られるように、レイアウト内の要素は、GridLayoutプロパティapp
の代わりに参照します。android
<TextView
android:textSize="32dip"
app:layout_columnSpan="4"
app:layout_gravity="center_horizontal"
/>
dependencies
最後に、GridLayoutサポートライブラリリファレンスを次のセクションに追加する必要があります\src\build.gradle
。
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile 'com.android.support:gridlayout-v7:+'
}
または、別の代替手段は、このサードパーティの下位互換性のある実装です。
これは、APIレベル3に戻る必要がある場合は互換性があり、Spaceウィジェットも含まれています。