Anleitung: Ausrichtungsänderungen der UI in Android-Apps verwalten

Ein abschreckender Punkt für Neulinge in der Android-Entwicklung sind Änderungen der Ausrichtung. Das Android-Betriebssystem startet die aktuelle Aktivität jedes Mal neu, wenn beispielsweise das Gerät gedreht wird. Die Framework Engineers von Google hatten ihre guten Gründe dafür, den Aktivitätslebenszyklus auf diese Weise zu konzipieren, aber dieses Wissen macht dem angehenden Android-Entwickler die Arbeit auch nicht leichter.

Es gibt zwei Punkte, die ein Entwickler bei einer Ausrichtungsänderung beachten muss: die Beibehaltung des Zustands und das Neuladen von Ressourcen. Zunächst also die vier gängigsten Strategien für Änderungen der UI-Ausrichtung, danach einige Code-Beispiele.

1. Nichts tun

Das klingt nach keiner guten Strategie? Ist es meistens auch nicht. Aber in einigen sehr einfach gestrickten Schnittstellen, bei denen es nicht auf die Ausrichtung (des UI, wohlgemerkt!) ankommt, ist dies durchaus möglich. Die folgende Abbildung zeigt das häufigste Problem, wenn ein Entwickler bei der Änderung der Ausrichtung nichts tut – ein Teil des UI wird abgeschnitten.

2. Unterdrücken

Man kann auch die geänderte Ausrichtung unterdrücken und die Anwendung zwingen, immer im Hoch- oder Querformat zu arbeiten. Hierdurch wird nur verhindert, dass das UI gedreht wird, aber die Aktivität wird trotzdem neu gestartet. Viele neue Entwickler machen den Fehler zu glauben, dass sie sich durch die Unterdrückung der Richtungsänderung auch keine Gedanken über den Status mehr machen müssten. Denn egal, ob die Richtung geändert wird oder nicht: Bei eingehenden Anrufen, Drücken der Home-Taste und so weiter wird die Aktivität grundsätzlich neu gestartet. Hat man sich also vor dem Hintergrund dieses Wissens entschieden, dass das Unterdrücken der Ausrichtungsänderung die richtige Strategie ist, braucht man nur für jede betroffene Aktivität eine Eigenschaft zur Manifest-Datei hinzuzufügen (siehe folgendes Bild).

3. Scroll-Ansicht verwenden

Die Scroll-Ansicht ist zwar nicht für alle UI-Typen geeignet, funktioniert aber beispielsweise bei der Anwendungskonfiguration sehr gut. Bei einer Scroll-Ansicht muss man lediglich dafür sorgen, dass alle UI-Elemente in einem einzigen Layout-Tag verpackt sind. Bei Scroll-Ansichten gibt es nur ein einziges übergeordnetes Layout (folgender Screenshot).

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="vertical"
  android:layout_height="wrap_content"
  android:layout_width="fill_parent">
 <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
android:layout_height="fill_parent">
 
  <!-- UI-Elemente zum innersten linearen Layout hinzufügen -->
 
 </LinearLayout>
</ScrollView>

4. Laden eines alternativen Layouts

Oft ist es am besten, eine neue Layoutdatei zu laden. Diese Vorgehensweise ist zwar nicht intuitiv, weil die benötigten Ressourcenordner nicht durch den Projekt-Assistent erstellt werden, aber jedes Layout kann durchaus in zwei Versionen vorliegen. Man braucht lediglich im Ordner /res das neue Verzeichnis layout-land anzulegen. Beim Neustart der Aktivität werden die XML-Dateien im Ordner layout-land verwendet, wenn das Handy im Querformat ausgerichtet ist (siehe Bild).

ZDNet.de Redaktion

Recent Posts

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

12 Stunden ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

2 Tagen ago

Bedrohungen in Europa: Schwachstellen in der Lieferkette dominieren

Hinter 84 Prozent der Zwischenfälle bei Herstellern stecken Schwachstellen in der Lieferkette. Auf dem Vormarsch…

2 Tagen ago

Bericht: Apple arbeitet an faltbarem iPad

Es kommt angeblich 2028 auf den Markt. Das aufgeklappte Gerät soll die Displayfläche von zwei…

2 Tagen ago

HPE baut Supercomputer am Leibniz-Rechenzentrum

Das System basiert auf Hardware von HPE-Cray und Nvidia. Die Inbetriebnahme erfolgt 2027.

3 Tagen ago

Bund meldet Fortschritte in der Netzversorgung

Die Bundesnetzagentur hat ihr Gigabit-Grundbuch aktualisiert. Drei von vier Haushalten sollen jetzt Zugang zu Breitbandanschlüssen…

3 Tagen ago