Android-Layoutordner: Layout, Layout-Port, Layout-Land

75

Ich bin mir nicht sicher, ob ich die Rolle der verschiedenen Android- /res/layoutOrdner gut verstanden habe.

layout: allgemeine Layouts

layout-port: Layout für Widget, das sich für die Hochformatausrichtung ändern muss

layout-land: Layout für Widget, das sich für die Querformatausrichtung ändern muss

In der Home- Beispielanwendung gibt es beispielsweise unter layout-portund in layout-landOrdnern nur eine home.xmlDatei.

Habe ich richtig verstanden

Giorgio Vespucci
quelle
7
Einige Entwickler wissen möglicherweise nicht, wie wichtig es ist, dieses Konzept zu beherrschen. Vielen Dank, dass Sie dies auf SO gesetzt haben.
Whyoz
Meine Theorie HTML5 wird dieses Zeug in Zukunft ersetzen.
Neferpitou
Update: Die Home-Beispielanwendung existiert nicht mehr. Ich weiß nicht, was es ersetzt hat.
Giorgio Vespucci

Antworten:

114

Wenn Sie sich im Quer- oder Hochformat befinden, sucht Android zuerst nach der Layoutdatei im Verzeichnis -port oder -land. Wenn sie nicht gefunden wird, wird auf das Standardlayoutverzeichnis zurückgegriffen.

Informationen zum Bereitstellen alternativer Ressourcen finden Sie hier . Es gibt viel mehr Möglichkeiten als nur Land und Hafen.

Robby Pond
quelle
1
In diesem Fall ändern sich die anderen Layouts nicht je nach Ausrichtung, sodass sie sich nur im Layoutordner befinden, während die Startseite spezifisch für Hoch- oder Querformat ist
Cameron
Ich bin überrascht, dass es für jede Eigenschaft keinen Orientierungsspezifizierer gibt, der für jede Eigenschaft unterschiedliche Werte angibt. Ich verstehe, dass im Fall von Auflösungen, die chaotisch werden könnten, aber da es nur zwei mögliche Ausrichtungen gibt (und immer sein wird), es möglicherweise schön ist, nicht zwei separate Dateien für ein Layout verwalten zu müssen, wenn zum Beispiel nur eine Eigenschaft muss zwischen den Orientierungen unterscheiden.
RTF
14

Wenn Sie setzen home.xmlin layout-portOrdnern, wenn das Gerät im Hochformat ist , wird es die Datei: layout-port/home.xml.

Wenn Sie setzen home.xmlin layout-landOrdnern, wenn das Gerät im Querformat wird die Datei verwenden: layout-land/home.xml.

Bedeutung für verschiedene Orientierungsmodi wie Hoch- und Querformat ... wir verwenden zwei home.xmlDateien; einer in layout-portund der andere in layout-land. Wenn Sie andererseits für beide dieselbe Layoutdatei verwenden möchten, können Sie sie einfach home.xmlin den layoutOrdner legen und aus layout-landund entfernen layout-port.

Udaykiran
quelle
1
Ich habe separate Layout-XML-Dateien sowohl für das Layout als auch für das Layout-Land erstellt. Aber wenn ich die Ausrichtung in Querformat ändere, wird die Layout-Land-Datei vom Android nicht angezeigt. Worin besteht das Problem?
YuDroid
10
Wenn Sie zwei Layoutdateien in -port und -land haben und diese beim Ändern der Geräteorientierung nicht wechseln, haben Sie wahrscheinlich android: configChanges = "Orientierung" in der AndroidManifest.xml angegeben. Geben Sie in diesem Fall erneut setContentView () in onConfigurationChanged () an oder entfernen Sie die Anweisung AndroidManifest.xml.
Emmanuel Touzery
3

Ordner in res layout-landoder erstellenlayout-port

layout-port: Layout für Widget, das sich für die Hochformatausrichtung ändern muss

layout-land: Layout für Widget, das sich für die Querformatausrichtung ändern muss

Mukesh Chaudhary
quelle