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

Bedrohungsakteure betten Malware in macOS-Flutter-Anwendungen ein

Googles App-Entwickler-Kit dient der Tarnung des schädlichen Codes. Der Sicherheitsanbieter Jamf hält die Schadsoftware für…

1 Stunde ago

CopyRhadamantys greift weltweit Unternehmen an

Ausgeklügelte Phishing-Kampagne verwendet eine weiterentwickelte Version der Rhadamanthys-Stealer-Malware.

3 Tagen ago

Facebook Marketplace: EU verhängt Geldbuße von fast 800 Millionen Euro gegen Meta

Die EU-Kommission kritisiert die Verknüpfung von Facebook und dem hauseigenen Online-Kleinanzeigendienst. Sie sieht darin einen…

3 Tagen ago

Umfrage: Angestellte in Deutschland unterschätzen NIS-2-Richtlinie

Fast zwei Drittel halten jedoch eine Umsetzung aller Vorgaben von NIS 2 bis Jahresende für…

4 Tagen ago

Kostenloser Dekryptor für ShrinkLocker

Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.

4 Tagen ago

Malwarebytes warnt vor Betrugsmaschen beim Weihnachtseinkauf

In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…

4 Tagen ago