Les Fragments sur Android (XML)

 

  Utilisation des fragments en full XML

 

Un petit mémo sur l’utilisation des Fragments sur Android, sous IDE éclipse.

 

  1. Création des Fragments via leurs XML respectifs
  2. Intégration de ces Fragments dans l’activité parente (hôte)

 

  On va utiliser ici la bibliothèque de compatibilité, qui permet d’utiliser les fragments sur d’anciennes versions d’Android.

 

  Quand Eclipse vous demandera l’importation d’une librairie,  faite attention à toujours choisir celle de la bibliothèque de compatibilité.

Il n faut pas mélanger les 2 :

  import android.support.v4.app.Fragment;   –> Bibliothèque de compatibilité. import android.app.Fragment; –> Bibliothèque standard que nous n’utiliserons pas ici.  

La page officiel: Fragments Android Developer    

 

 

 

 Création des Fragments

 

  Nous allons utiliser 2 fragments.

Créer tout d’abord 2 fichiers XML dans le repertoire res/layout de votre projet : fragment_1.xml et fragment_2.xml

C’est dans ces 2 fichiers que vous aller pouvoir gérer le contenu de vos fragments.  

 

< ?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rlFragment_1" android:background="#939393" android:layout_width="match_parent" android:layout_height="match_parent" >
    
	<textview android:id="@+id/tvFragment_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="#0099CC" android:text="Fragment 1"></textview>
    
    
</relativelayout>
fragment_1.xml
< ?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rlFragment_2" android:background="#D0D0D0" android:layout_width="match_parent" android:layout_height="match_parent" >
    
	<textview android:id="@+id/tvFragment_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="#CC0000" android:text="Fragment 2"></textview>
    
    
</relativelayout>
fragment_2.xml

 

Il faut ensuite créer leurs 2 classes correspondantes, Fragment1.java et Fragment2.java.

 

package com.example.fragments;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class Fragment1 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_1, container, false);
    }
}
Fragment1.java
package com.example.fragments;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class Fragment2 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_2, container, false);
    }
}
fragment2.java

 

Si Eclipse ne reconaît pas le android.support.v4.app.Fragment, vérifié que le fichier android-support-v4.jar du repertoire libs est bien inclu dans le Build Path (sinon clic droit sur le fichier -> Build Path -> Add To Build Path).    

 

 

Intégration des Fragments dans votre Activité

 

  L’activité qui va héberger nos fragments doit dépendre de FragmentActivity (de la librairie support V4).

 

package com.example.fragments;


//import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.LayoutInflater;
 

public class MainActivity extends FragmentActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	
}
MainActivity.java

 

et son XML où il y a bien nos 2 fragments.  

 

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
    
     <fragment android:id="@+id/fragment_1" android:layout_weight="1" android:name="com.example.fragments.Fragment1" android:layout_width="match_parent" android:layout_height="0dp"></fragment>
     
      <fragment android:id="@+id/fragment_2" android:layout_weight="2" android:name="com.example.fragments.Fragment2" android:layout_width="match_parent" android:layout_height="0dp"></fragment>
    

</linearlayout>
activity_main.xml

 

 

Avec le premier Fragment1à 1/3 de la hauteur et le 2ème à 2/3 de la hauteur (attribut weight), on obtient ceci :

 

  tutaux_fragments_resultat1  

 

Si vous avez des erreurs à la compilation

Bien vérifié que dans les propriétés du projet, menu Java Build Path onglet Order and Export, la ligne android-support-v4.jar soit coché.

 

  fragments_tutaux_support_v4

 

 

 

 

Please follow and like us:
7

Comments

Annick

Cette fois encore un billet très instructif. Merci ne serait-ce que d’avoir écris ces quelques mots. Au plaisir de lire le prochain billet . Annick de http://www.seo-rennes.org/

Leave a Comment

Social media & sharing icons powered by UltimatelySocial