Skip to content

Erstellen eines weiteren Screens

Dennis Natusch edited this page Jun 16, 2020 · 1 revision

Um einen weiteren Screen in die App einzufügen, sind folgende Schritte notwendig:

  1. Unser Screen soll durch einen Menüeintrag geöffnet werden. Dafür haben wir in der Datei menu_main.xml ein weiteres Item mit der ID @+id/test_screen angelegt.
  2. Damit haben wir nur ein Menüitem angelegt, jetzt müssen wir dafür sorgen, das beim Klick darauf auch etwas passiert. Da das Menü aus dem Main Fragment aufrufbar ist, müssen wir in die Klasse MainFragment in der Funktion showPopup einen weiteren Fall hinzufügen. Dafür haben wir direkt vor dem else folgendes geschrieben:
    R.id.test_screen -> { findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToTestFragment())
    true
    }
    actionMainFragmentToTestFragment ist dabei die ID einer Aktion, die wir jetzt erstellen.
  3. In der Datei nav_graph.xml müssen wir jetzt diese Aktion hinzufügen und ein Zielfragment angeben. Dafür fügen wir folgendes an das Ende des Main-Fragments, das in Zeile 8 beginnt.
    <action android:id="@+id/action_mainFragment_to_testFragment" app:destination="@id/testFragment" /> Das Ziel mit der Id testFragment müssen wir jetzt erstellen.
  4. Dafür fügen wir in die selbe Datei ein weiteres Fragment ein:
    <fragment android:id="@+id/testFragment" android:name="de.rki.coronawarnapp.ui.test.TestFragment" android:label="fragment_test"
    tools:layout="@layout/fragment_test" />
    Sowohl de.rki.coronawarnapp.ui.test.TestFragment wie auch @layout/fragment_test müssen noch erstellt werden.
  5. Im Ordner res/layout fügen wir die Layout Datei names fragment_test.xml hinzu. Diese enthält den Aufbau des Screens. Für unser Beispiel haben wir einfach den Inhalt aus fragment_information_about.xml kopiert.
  6. Jetzt fehlt nur noch die Klasse TestFragment. Dafür haben wir einen Ordner test im Ordner de/rki/coronawarnapp/ui erstellt und darin die Datei TestFragment.kt. Für diese Datei haben wir wieder den Code von InformationAboutFragment kopiert und nur den Klassennamen geändert zu TestFragment

Clone this wiki locally