Android-Fragmente mit „ Qt Quick “ für Android
Sie können ein QtQuickView in einem Android-UI-Layout einbinden, indem Sie ein auf ViewGroup basierendes Objekt verwenden. Hier verwenden wir ein FrameLayout.
Wenn Sie mit der QtQuickView-API noch nicht vertraut sind, lesen Sie bitte die Dokumentation, bevor Sie mit diesem Tutorial fortfahren.
Bevor Sie fortfahren, lohnt es sich, den Qt Academy-Kurs „Qt Academy: Einbetten von Qt Quick 3D -Inhalten in eine Android-App“ durchzuarbeiten.
Erstellen Sie zunächst in Android Studio ein neues Projekt mithilfe der Vorlage „ Bottom Navigation Views Activity “.
- Suchen Sie das Fragment oder die Aktivität, unter der Ihr QtQuickView sichtbar sein soll. Hier verwenden wir „
HomeFragment“ und „fragment_home.xml“. - Erstellen Sie in „
fragment_home.xml“ ein „FrameLayout“ und legen Sie dessen „id“ wie unten gezeigt fest.<FrameLayout android:id="@+id/homeQmlFrame" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_percent="0.8"/>Notieren Sie sich diese ID, da sie in „
HomeFragment“ beim Binden des Layouts benötigt wird. - Fügen Sie in „HomeFragment.kt“ eine Importanweisung für „FrameLayout“ hinzu:
import android.widget.FrameLayout - Fügen Sie die Importe für Ihren QtQuickView und den QML-Typ „Screen01“ hinzu und deklarieren Sie diese innerhalb der Klasse:
import org.qtproject.qt.android.QtQuickView import org.qtproject.example.RoboApp.RoboContent.Screen01 class HomeFragment : Fragment() { private var binding: FragmentHomeBinding? = null private lateinit var homeQmlContent: Screen01 private lateinit var homeQtQuickView: QtQuickView - Weisen Sie Ihrem QtQuickView die Activity-Instanz zu, indem Sie
requireActivity()homeQtQuickView = QtQuickView(requireActivity()) homeQmlContent = Screen01() - Initialisieren Sie die Layout-Parameter, wenn Sie Ansichten programmgesteuert erstellen, dynamisch hinzufügen oder zur Laufzeit ändern. Andernfalls können Sie diesen Abschnitt überspringen und müssen `
params` mit `addView()` nicht verwenden.val params = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) - Fügen Sie Ihre Ansicht dem Layout hinzu, entweder mit:
- Verwendung der View-Bindung innerhalb von „
onCreateView()“: Überprüfen Sie zunächst, ob die View-Bindung aktiviert ist, indem Sie den Abschnitt „buildFeature“ in den „android“-Abschnitt der Datei „build.gradle.kts“ Ihrer App einfügen:buildFeatures { viewBinding = true }Fügen Sie anschließend Folgendes in „
onCreateView()“ hinzu:binding = FragmentHomeBinding.inflate( inflater, container, false) homeQtQuickView.loadContent(homeQmlContent) val root: View = binding.root binding.homeQmlFrame.addView(homeQtQuickView, params) ... return root - Verwendung von „
findViewById()“ in „onCreate()“:val qtFrame = findViewById(R.id.qtFrame) qmlFrame.addView(m_quickView, params) m_quickView.loadContent(homeQmlContent)Beispiele für die Verwendung in anderen „Qt Quick “-Beispielen für Android finden Sie hier.
- Verwendung der View-Bindung innerhalb von „
Der Inhalt Ihres „ Qt Quick “ wird nun in Ihrem Start-Fragment angezeigt.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.