Avant-propos
Après avoir appris Java et Android pendant près d'un an, les résultats de la période devraient être de compléter indépendamment un client Android et d'assurer la stabilité de sa version de ligne principale. Pendant la période, j'ai rencontré beaucoup de fosse et j'ai également appris beaucoup de connaissances Android avec mon frère. Mais les gens doivent toujours embrasser les changements et ne pas se rendre trop confortables. Ici, nous résumons le plus de fragments utilisés dans les éléments précédents.
Introduction au fragment
Le fragment peut être compris comme un comportement ou une partie de l'interface utilisateur dans l'activité, et il doit être imbriqué dans l'activité. Mais un fragment a son propre fichier de mise en page indépendant et a un bon emballage.
Créer des fragments
Créez un fragment et créez une activité.
Les fichiers de mise en page XML sont les mêmes que les autres fichiers de mise en page.
<? Match_pareat "Android: orientation =" vertical "> <textView Android: id =" @ + id / textView "Android: Layout_width =" wrap_content "Android: la yout_height =" wrap_content "Android: Text =" @String / testView "/ / > <Button Android: id = "@ + id / bouton" Android: Layout_Width = "wrap_content" Android: Layout_Height = "Wrap_Content" Android: Text = "@String / Button" /> </ linearLayout>
Dans le code Java, en général, les méthodes de cycle de vie suivantes peuvent être implémentées au besoin: Fragment:
1. Onattach (): Lorsque le fragment dépend de l'activité, vous pouvez obtenir la poignée de l'activité dans cette méthode pour réaliser la communication entre le fragment et l'activité.
2. OnCreate (): Initialisez le cadre.
3. OnCreatEView (): Le système appelle cette méthode lors du dessin de l'interface utilisateur pour la première fois pour le fragment.
4. OnActivityCreated (): Après avoir été exécuté par la fonction d'activité de l'hôte OnCreate, vous pouvez effectuer une instance de widget de Fragment et un traitement de logique métier dans cette méthode.
5. OnDestoryView (): Appelez lorsque le cadre commence à être détruit.
6. OnStart (): Appelez lorsque le fragment peut être visible.
Il existe également de nombreuses autres fonctions de rappel qui sont utilisées pour manipuler le cycle de vie des fragments.
Cycle de vie des fragments
Chaque fragment a son propre ensemble de méthodes de rappel du cycle de vie et gére ses propres événements d'entrée utilisateur. Le cycle de vie correspondant est illustré dans la figure ci-dessous:
Ajouter un fragment à l'activité
Tout d'abord, vous devez vous assurer que l'acitivité soutient le fragment, donc l'activité doit généralement hériter de la fragmentactivité. Il existe généralement deux méthodes pour ajouter un fragment à l'activité: statique et dynamique.
La méthode statique ajoute un fragment directement au fichier d'activité de mise en page XML, comme indiqué ci-dessous:
<? Match_Pareant "Android: BaseLineAnigned =" false "Android: orientation =" Horizontal "> <Fragment Android: id =" @ + id / first "Android: name =" com. Layout_Height = "Match_parent" Android: Layout_weight = "1" /> <Fragment Android: id = "@ + id / seconde" Android: name = "com.example.se condfragment" Android: Layout_Width = "0dp" Android: Layout_Height = "Match_parent" Android: Layout_weight = "1" /> </ linearlayout>
Lorsque l'attribut Android: Name dans <Fragment> Spécifie la classe de fragments instanciée dans la disposition, lorsque la disposition de l'activité est créée, il a instancié chaque trame dans le fichier de mise en page et les appelle pour les appeler pour obtenir chacun pour obtenir chacun. . Le système insère directement la vue renvoyée par l'emplacement de l'élément <fragment>
Remarque: chaque fragment nécessite une identification unique. Il existe trois façons de fournir des ID pour les fragments: il y a trois façons:
Méthode dynamique
Utilisez FragmentTranscation. Vous pouvez utiliser l'API de FragmentTranscation pour faire fonctionner le fragment d'activité (comme l'ajout, le retrait ou le remplacement du fragment). Le code de référence est le suivant:
FragmentManager FragmentManager = GetFragmentManager () FragmentTransaction FragmentTraction = FragmentManager.Begintraction ();
Le premier paramètre de la fonction ADD () est le groupe View du fragment, qui est spécifié par l'ID de ressource (ID de ressource). Une fois changé par fragmenttranscation, il devrait prendre effet avec les changements visuels commit ().
Fragments Communication
Les fragments ne doivent pas être directement communiqués et l'interaction entre eux doit être effectuée par l'activité de l'hôte. Il existe trois façons d'interagir avec les fragments et l'acitivité:
1. L'activité crée un fragment avec des paramètres.
2. L'activité maintient la poignée de l'objet du fragment, qui peut être directement appelé la méthode publique du fragment à travers la poignée.
3. Fragment peut obtenir la poignée de l'écoute définie dans la fonction Onattach.
Créez le cadre avec des paramètres
Dans certains cas spécifiques, le fragment peut nécessiter des paramètres spécifiques pour initialiser. Étant donné que le fragment ne doit avoir qu'un seul constructeur de ginseng, vous pouvez envisager d'utiliser la méthode statique de NewInstance pour créer un fragment avec des paramètres. L'exemple de code est le suivant:
Import Android.os.bundle; ;; "num", num);
Vous pouvez simplement charger un paramètre avec des paramètres dans l'activité:
FragmentTransaction ft = GetSupportFragmentManager ().
La méthode d'appel des fragments
Parce que l'activité peut obtenir la poignée de fragment intégrée, cette méthode peut être appelée directement via la poignée de fragment.
Classe publique TestFragment étend Fragment {public void dosomething (String Param) {// faire quelque chose en fragment}}} En activité, vous pouvez appeler cette méthode directement via la poignée de l'objet du fragment:
Classe publique Mainaction étend FragmentActivity {@Override public void onCreate (bundle SavedanceState) {super.onCreate (SavedInstate); Auditeur de fragments
Si le fragment doit partager des événements à l'activité, cette méthode doit être utilisée. Fragment définit une interface et cette interface est implémentée par activité. L'activité de l'interface sera obtenue dans la méthode Onattach ().
Le code d'interface défini en fragment est le suivant:
Importation Android.Support.v4 Utiliser pour faire communiquer l'interface publique ONITEMSELECTListener {public void onRseseSitemSelect (lien de chaîne);} // Stockez l'auditeur (activité) qui aura des événements tirés une fois que le fragment est attaché @Override public void onattach (activité activité) {super.onattach (activité ); Instance ONITEMSELECTEREner) {auditeur = (ONITEMSELECTLISTEN);} else {Throw New ClassCastException (Activity.to String () + "MUST IMUSTFRAGment.OnItemSelectListener"); Auditeur.onrsSitemSelect ("un lien");}}Implémentez cette interface dans l'activité:
Importation Android.Support.v4 DetailFragment);} // Nous pouvons maintenant définir l'action dans l'activ it lorsque l'événement Fragment fichiers @Override public void onRseSitemSelect (String link) {if (fragment! = null && fragment.isinlayout ()) {fragment.settext (lien );}}}