2016-04-25 9 views
0

Gibt es eine Möglichkeit zu direkt android sagen, welcher Layoutressource für Quer- oder Hochformat-Modus zu wählen?android Layout Landschaft/Porträt mit verschiedenen Optionen

Ich weiß normalerweise, es ist einfach, legen Sie die normale "main_layout.xml" im Ordner "res/layout" und die Landschaft "main_layout.xml" im Ordner "res/layout-land".

Jetzt nehme ich habe zwei Layouts genannt "main_layout_blue.xml" und "main_layout_red.xml". Der Benutzer kann einen von ihnen wählen und ich kann das passende Layout einstellen. Wenn die Orientierung wieder geändert wird, ist alles in Ordnung.

Wo ich bleibe ist, indem ich dem Benutzer eine Option gebe, verschiedene Layouts für verschiedene Orientierungen wie "main_layout_blue.xml" für den Hochformatmodus und "main_layout_red.xml" für den Querformatmodus festzulegen.

Gibt es eine Android-Option, die dem System explizit mitteilt, dass "res/layout/main_layout_blue.xml" für die Hochformatausrichtung und "res/layout-land/main_layout_red.xml" für die Querformatausrichtung verwendet werden soll? Was fehlt mir hier?

Antwort

0

Nach der Orientierungsänderung wird die Ansicht neu erstellt werden, so dass Sie die Ausrichtung des Geräts durch die folgende überprüfen:

Activity.getResources().getConfiguration().orientation 

und basierend auf dem Ergebnis können Sie:

if(portrait) 
     setContentView(R.layout.blue) 
    else 
     setContentView(R.layout.red) 

aber Denken Sie daran, alle Ressourcen in/Layout-Ordner

+0

Hallo Pooya. Ich habe vergessen zu erwähnen, dass dies meine bevorzugte Workaround ist. Ich habe nur gehofft, dass es einen Weg geben könnte, explizit auf Orientierungsänderungen zu lauschen, indem man vorher erklärt, welche Ressource man wählen soll. – Marchand

+0

@Marchand Da Sie den Benutzer das bevorzugte Layout zur Laufzeit auswählen lassen, müssen Sie Logik in Ihren Code einfügen, um die Benutzereinstellungen zu finden und sie mit Ihren verfügbaren Layouts zu verknüpfen – Pooya

Verwandte Themen