2017-05-26 3 views
2

sagen, dass ich die folgenden Layout-Ressourcen-Dateien in meinem Android-Projekt haben:Wenn mein Android-Projekt nur v21-Layouts hat, werden ältere Geräte unterstützt?

activity_create_group.xml (v21) 
activity_create_group.xml (large-v21) 
activity_create_group.xml (small-v21) 
activity_create_group.xml (xlarge-v21) 
activity_create_group.xml (xlarge-land-v21) 

bedeutet dies, dass die Geräte unter API 21 abstürzt? Oder wird diese Datei trotzdem ältere Geräte unterstützen, indem bestimmte API-spezifische Funktionen wie android:elevation="4dp" (v21) und android:fontFamily="sans-serif-light" (v16) automatisch entfernt werden?

Was ist das Urteil darüber?

Wenn ich diese zusätzliche Funktionen haben, und wollen auch ältere OS unterstützen‘sollte ich auch Folgendes umfassen:

activity_create_group.xml (v16) 
activity_create_group.xml (large-v16) 
activity_create_group.xml (small-v16) 
activity_create_group.xml (xlarge-v16) 
activity_create_group.xml (xlarge-land-v16) 

... und:

activity_create_group.xml 
activity_create_group.xml (large) 
activity_create_group.xml (small) 
activity_create_group.xml (xlarge) 
activity_create_group.xml (xlarge-land) 

scheint übertrieben. Auch viel mühsames Kopieren und Einfügen. Gibt es auf diese Weise gängige Batch-Skripte zum Generieren von Layout-Dateien? Geht Android Studio damit um? Was erledigt beispielsweise das UI-Team eines Android-Entwicklungsstudios, um alle diese Ressourcendateien zu bearbeiten?

Wenn Herabstufung Ich habe in der Regel mehrere Funktionen wie das Ändern der folgenden ändern:

android:paddingEnd="10dp" 
android:paddingStart="25dp" 

... bis:

android:paddingRight="10dp" 
android:paddingLeft="25dp" 
android:paddingEnd="10dp" 
android:paddingStart="25dp" 

Wenn ich will wirklich jedes Gerät unterstützen und jede API Mit der spezifischen Funktion werden 15 Layout-Dateien für jede Aktivität verwaltet. Ich kann das einfach nicht akzeptieren, aber da ich noch nie in einer Agentur gearbeitet habe, die vermutlich sehr anal sein würde, bin ich nicht sicher, wo ich diese Art von Informationen finden könnte.

Zusammengefasst, meine Frage ist die erste ... Welche Geräte werden nicht unterstützt, wenn ich nur die oben angegebenen v21-Layout-Dateien liefern?

Antwort

2

Solange die UI-Dimensionen nicht betroffen sind und Ihre zusätzlichen Stiländerungen wie Höhe keine Sorge sind, können Sie sicher weiterhin eine einzelne Layoutdatei schreiben, ohne sie basierend auf der API zu kategorisieren.

IDE warnt Sie über die API, so dass Sie im Wechsel für die API, zum Beispiel unter Verwendung von 9 Patch Schatten in unteren APIs erstellen Effekt Erhebung verwenden können, aber wenn Ihre Anwendung kann ohne diese zusätzlichen Design Luxus arbeiten dann seine immer empfohlen, einzelne Standard-Layout-Datei zu verwenden.

Und für den Point of paddingStart & paddingLeft und marginStart & marginLeft gibt es keinen Schaden sowohl die Attribute in einzelnen XML anstelle der Schaffung von zwei xmls mit den entsprechenden Attributen in darunter.

+0

Okay, auch wenn ich diesen Design-Luxus in eine Layout-Datei einbeziehe, die nicht nach API kategorisiert ist, wird dies keine Interferenzen auf Geräten verursachen, die damit nicht umgehen können? Dass dies nur Warnungen an den Entwickler sind, versuche ich zu bestätigen. Prost. – santafebound

1

Versuchen Sie, sie mit Android Virtual Device Emulator zu testen, erstellen Sie ein virtuelles Gerät, zum Beispiel nexus 4 mit Eis Sandwich und debbug die Anwendung zu ihm.

+0

Wenn ich nur Virtualisierung auf diesem alten Hunkin Lenovo hätte, P – santafebound

+0

lol, können Sie mir die Spezifikationen Ihres lenovo sagen? –

+0

Nur für die lols? – santafebound

Verwandte Themen