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

Toughbooks als Marktnische: Für wen sind die stabilen Laptops geeignet?

Technik funktioniert überall oder zumindest fast überall. In einem klimatisierten Büro mag ein herkömmlicher Laptop…

18 Stunden ago

iOS 18 macht einige iPads unbrauchbar

Betroffen ist derzeit offenbar nur das iPad Pro M4. Es lässt sich Berichten von Nutzern…

19 Stunden ago

Google AdSense: EuG hebt Geldstrafe der EU-Kommission auf

Die EU-Kommission kann die Entscheidung noch anfechten. Das Gericht der Europäischen Union kassiert lediglich die…

21 Stunden ago

Chrome 129 stopft schwerwiegende Sicherheitslöcher

Hacker können aus der Ferne Schadcode einschleusen und ausführen. Betroffen sind Chrome für Windows, macOS…

1 Tag ago

Sicherheitslücken bei Verivox und Check24 geben Kundendaten preis

Das Datenleck betrifft den Kreditvergleich. Unbefugte haben zwischenzeitlich Zugriff auf die Kreditvergleiche anderer Kunden.

2 Tagen ago

Copilot Wave 2: Microsoft kündigt neue KI-Funktionen an

Copilot wird stärker in Microsoft 365 integriert. Neue Funktionen stehen unter anderem für Excel, Outlook,…

2 Tagen ago