Ich hatte eine App mit der Ziel-API 15 entwickelt. Das Layout enthält ein Rasterlayout. Jetzt, wenn ich die Ziel-API auf 10 ändere, habe ich Probleme mit dem Rasterlayout und einem anderen Element 'Leerzeichen'. Eclipse fordert mich auf, eine unterstützende Bibliothek für 2.3.3 herunterzuladen, was ich auch getan habe... Aber das Problem besteht weiterhin.
Antworten
Zu viele Anzeigen?GridLayout
wurde tatsächlich zurückportiert, um mit API-Level 7 und höher kompatibel zu sein. Es ist (sozusagen) Teil der Support-Bibliothek. Nachdem Sie die Support-Bibliothek heruntergeladen haben, finden Sie ein Android-Bibliotheksprojekt in Ihrem lokalen SDK-Ordner unter:
\extras\android\compatibility\v7\gridlayout
Richten Sie es als Abhängigkeit des Projekts ein, an dem Sie arbeiten. Danach müssen Sie die Verweise in Ihrem Projekt von der Version 15 auf diese kompatible Version ändern, um Geräte vor ICS zu unterstützen. Ändern Sie in den Layoutdateien Ihr xml von GridLayout zu android.support.v7.widget.GridLayout. Die Verwendung sollte ähnlich sein, wenn nicht identisch.
In Bezug auf das Space
-Widget: Ich habe dieses noch nicht tatsächlich verwendet, aber es scheint etwas zu sein, das entweder durch Einstellen von margin/padding auf vorhandenen Ansichten ersetzt werden kann oder durch Hinzufügen Ihrer eigenen generischen View
, die vollständig transparent ist.
Wenn Sie Android Studio verwenden, müssen Sie, sobald Sie die Support-Bibliothek heruntergeladen haben (wie von @MH erwähnt), Datei->Modul importieren...
verwenden, und dann den Speicherort des GridLayout-Supports auswählen, der sich bei mir hier befand: \extras\android\support\v7\gridlayout
.
Anschließend verwenden Sie in Ihrer XML-Layoutdatei anstelle von . Hier ist ein Beispiel:
Elemente im Layout werden wie oben und in den untergeordneten Elementen app
statt android
für GridLayout-Eigenschaften referenzieren:
Schließlich muss der Verweis auf die GridLayout-Support-Bibliothek im dependencies
-Abschnitt von \src\build.gradle
hinzugefügt werden:
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile 'com.android.support:gridlayout-v7:+'
}
Oder eine andere Alternative ist diese Drittanbieter-rückwärtskompatible Implementierung:
Dies ist kompatibel bis zur API-Ebene 3 zurück, wenn Sie so weit zurück müssen, und es beinhaltet auch das Space Widget.