Fragments Android avec l'Qt Quick pour Android

Vous pouvez intégrer un QtQuickView dans une mise en page d'interface utilisateur Android à l'aide d'un objet basé sur ViewGroup. Ici, nous utiliserons un FrameLayout.

Si vous ne connaissez pas bien l’API QtQuickView, consultez sa documentation avant de poursuivre ce tutoriel.

Avant de continuer, nous vous recommandons de suivre le cours de la Qt Academy intitulé « Qt Academy : Intégration de contenu 3D Qt Quick dans une application Android ».

Pour commencer, créez un nouveau projet dans Android Studio à l’aide du modèle Bottom Navigation Views Activity.

  1. Identifiez le fragment ou l’activité dans lequel vous souhaitez que votre QtQuickView soit visible. Ici, nous utilisons HomeFragment et fragment_home.xml.
  2. Dans « fragment_home.xml », créez un « FrameLayout » et définissez son « id » comme indiqué ci-dessous.
    <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"/>

    Notez cet identifiant, car vous devrez y faire référence dans HomeFragment lors de la liaison de la disposition.

  3. Dans HomeFragment.kt, ajoutez une instruction d'importation pour FrameLayout :
    import android.widget.FrameLayout
  4. Ajoutez vos importations pour vos types QML QtQuickView et Screen01, puis déclarez-les à l'intérieur de la classe :
    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
  5. Attribuez votre QtQuickView en lui passant l'instance de l'Activity à l'aide de requireActivity()
    homeQtQuickView = QtQuickView(requireActivity())
    homeQmlContent = Screen01()
  6. Initialisez les paramètres de mise en page. Si vous créez des vues par programmation, ajoutez-les dynamiquement ou modifiez-les à l'exécution. Sinon, vous pouvez ignorer cette section et vous n'avez pas besoin d'utiliser ` params ` avec ` addView()`.
    val params = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                                          ViewGroup.LayoutParams.MATCH_PARENT)
  7. Ajoutez votre vue à la mise en page, soit à l'aide de :
    1. En utilisant la liaison de vue (View binding ) dans « onCreateView() » : Vérifiez d’abord que la liaison de vue est activée en ajoutant la section buildFeature dans la section android du fichier build.gradle.kts de votre application :
      buildFeatures {
          viewBinding = true
      }

      Ajoutez ensuite ce qui suit dans ` onCreateView()` :

      binding = FragmentHomeBinding.inflate( inflater, container, false)
      homeQtQuickView.loadContent(homeQmlContent)
      
      val root: View = binding.root
      binding.homeQmlFrame.addView(homeQtQuickView, params)
      ...
      return root
    2. Utilisation de ` findViewById() ` dans ` onCreate()` :
      val qtFrame = findViewById(R.id.qtFrame)
      qmlFrame.addView(m_quickView, params)
      m_quickView.loadContent(homeQmlContent)

      Consultez les exemples d'utilisation d'Qt Quick pour Android.

Le contenu de votre « Qt Quick » apparaîtra désormais dans votre fragment d'accueil.

© 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.