/ / Wie kann ich das Layout eines Fragments aus XML definieren? - Java, Android, XML

Wie kann ich das Layout eines Fragments aus XML definieren? - Java, Android, XML

Ich versuche, das Layout eines Fragments in XML so zu definieren, wie ich das Layout meiner Ansicht definiert habe.

Ist das möglich? Ich habe verschiedene Dinge ausprobiert, aber keine davon scheint zu funktionieren.

Mein Aktivitätslayout sieht wie folgt aus (main.xml):

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="full.lommeregner.Lommeregnerrv2Activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lommeregnerv2">
</fragment>

</ListView>

Da ich kein großer Fan von Layouts mit Java-Rohcode bin, habe ich versucht, mein Fragment wie folgt zu definieren (fragment_lommeregner.xml):

  <fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="full.lommeregner.Lommeregnerrv2Activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lommeregnerv2">
<!-- my content was located here (some textviews, buttons and so on). -->
</fragment>

Mache ich etwas falsch? Wie kann ich das Layout eines Fragments über XML definieren?

Antworten:

15 für die Antwort № 1

Ein Fragment funktioniert ähnlich wie eine Aktivität. Dazu benötigen Sie eine Java-Klassendatei. Sie können ein Fragment nicht einfach durch Erstellen eines Fragmentlayouts erstellen - Sie benötigen eine Klasse für Ihr Fragment:

  1. Erstellen Sie ein Layout-XML und eine Aktivitätsunterklasse für Ihre Aktivität
  2. Erstellen Sie eine Layout-XML und eine Fragment-Unterklasse für Ihr Fragment
  3. Binden Sie die beiden in Ihrem Aktivitätslayout-XML zusammen (oder verwenden Sie FragmentTransaction, wenn Sie dies in Java-Code tun möchten).

Wenn Sie dies noch nicht getan haben, lesen, wiederholen und verdauen Sie alles auf dieser Seite: https://developer.android.com/guide/components/fragments.html

Es gibt eine Menge, aber Fragmente sind jetzt ein wesentlicher Bestandteil von Android-Apps, daher ist das Lesen erforderlich. Die gute Nachricht ist, dass die Grundlagen von Fragmenten ziemlich einfach sind.


10 für die Antwort № 2

Fügen Sie einfach in Ihre <fragment> Tag als Eigenschaft:

tools:layout="@layout/your_layout_xml"

Und in Ihrer main.xml (oder <fragment> tag container) in Ihren übergeordneten Container (in diesem Fall ListView):

xmlns:tools="http://schemas.android.com/tools"