En commençant par une nouvelle version récente d’ADT, j’ai remarqué ce nouvel attribut dans les fichiers XML de présentation, par exemple:
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
tools:context=".MainActivity" />
A quoi servent les "outils: contexte"?
Comment sait-il même le chemin exact de l'activité qui y est écrite? Regarde-t-il le paquet de l'application, à l'intérieur du manifeste?
Est-ce limité aux classes qui étendent le contexte ou seulement aux activités? Est-il utilisable pour les éléments ListView, etc.?
Il s'agit de l'activité utilisée par l'éditeur d'interface utilisateur pour générer l'aperçu de votre mise en page. C'est documenté ici :
Cet attribut indique à quelle activité cette mise en page est associée par défaut. Cela active les fonctionnalités de l'éditeur ou de l'aperçu de la mise en page qui nécessitent une connaissance de l'activité, telles que le thème de la mise en page dans l'aperçu et l'emplacement où insérer les gestionnaires onClick lorsque vous les créez à partir d'un correctif rapide.
Cet attribut est essentiellement la persistance de la sélection "Activité associée" au-dessus de la présentation. Au moment de l'exécution, une mise en page est toujours associée à une activité. Il peut bien sûr être associé à plusieurs, mais au moins un. Dans l'outil, nous avons besoin de connaître ce mappage (qui, au moment de l'exécution, a lieu dans le sens opposé; une activité peut appeler setContentView (layout) pour afficher un layout) afin de gérer certaines fonctionnalités.
Pour l’instant, nous ne l’utilisons que pour une chose: choisir le bon thème à afficher pour une mise en page (car le fichier manifeste peut enregistrer des thèmes à utiliser pour une activité , et une fois que nous connaissons l’activité associée à la mise en page, nous pouvons choisir le bon thème à afficher pour la mise en page). À l'avenir, nous l'utiliserons pour créer des fonctionnalités supplémentaires - telles que le rendu de la barre d'actions (associée à l'activité), un emplacement pour ajouter des gestionnaires OnClick, etc.
La raison pour laquelle il s’agit d’un attribut tools: namespace est qu’il s’agit uniquement d’un mappage de conception destiné à être utilisé par l’outil. La mise en page elle-même peut être utilisée par plusieurs activités/fragments, etc. Nous souhaitons simplement vous donner le moyen de choisir une liaison de conception telle que nous puissions, par exemple, afficher le bon thème. vous pouvez le changer à tout moment, tout comme vous pouvez changer notre Listview et nos liaisons de fragments, etc.
(Voici le changeset complet qui contient plus de détails sur this )
Et oui, le lien Nikolay mentionné ci-dessus montre comment le nouveau sélecteur de configuration se présente et fonctionne
Une dernière chose: l'espace de noms "tools" est spécial. L'outil de packaging Android sait l'ignorer. Par conséquent, aucun de ces attributs ne sera empaqueté dans l'APK. Nous l'utilisons pour des métadonnées supplémentaires dans la mise en page. C'est également à cet endroit que, par exemple, les attributs permettant de supprimer les avertissements de peluches sont stockés - en tant qu'outils: ignorer.
Selon le Android Tools Project Site :
outils: contexte
Cet attribut est généralement défini sur l'élément racine dans un fichier XML de présentation et enregistre l'activité à laquelle la présentation est associée (au moment de la conception, car une présentation peut évidemment être utilisée par plusieurs présentations). Ceci sera par exemple utilisé par l'éditeur de disposition pour deviner un thème par défaut, car les thèmes sont définis dans le manifeste et sont associés à des activités et non à des présentations. Vous pouvez utiliser le même préfixe de point que dans les manifestes pour spécifier simplement la classe d'activité sans le nom complet du package d'application comme préfixe.
<Android.support.v7.widget.GridLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
tools:context=".MainActivity">
Utilisé par: Editeurs de mise en page dans Studio & Eclipse, Lint
tools: context = "activity name"
il ne sera pas empaqueté dans le apk
.Only ADT
Editeur de mise en page dans votre fichier de mise en forme actuel définissant le contexte de rendu correspondant, affichez votre mise en page actuelle dans le contexte où le nom de l'activité correspond Pour l’activité, si l’activité dans le fichier manifest
définit un thème, alors ADT
Editeur de mise en page rendra votre mise en page actuelle en fonction du thème. Cela signifie que si vous définissez la variable MainActivity
Thème. La Lumière (l’autre), vous voyez alors dans le gestionnaire de disposition visuelle un contrôle en arrière-plan de ce que devrait être le thème. La lumière ressemble. Seulement pour vous montrer ce que vous voyez est ce que vous obtenez des résultats.
Certaines personnes voient comprendront, certaines personnes voient aussi ne sais pas, je vais ajouter quelques mots d'explication:
Prenez un simple
tools:text
, par exemple, une image de plus, pratique pour mieux comprendre letools:context
<TextView
Android:id="@+id/text1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="sample name1" />
<TextView
Android:id="@+id/text2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
tools:text="sample name2" />
TextView
1 a adopté leAndroid: text
, et utilise letools:text
dans leTextView
2, à droite de l'éditeur de mise en page affiche lesample name1
, lesample name2
Deux polices si, après avoir exécuté le code à compiler, généréapk
, le terminal n'affiche que lesample name1
, ne montre pas lesample name2
les mots. Vous pouvez essayer de courir, voir comment l'effet.
1. Le tools: context = "activity name"
il ne sera pas empaqueté dans la apk
(comprenant: l'équivalent de ceci est commenté, le compilé aucun effet.)
2.Only ADT
Editeur de mise en page (c'est-à-dire, pour l'icône ci-dessus sur le côté droit du simulateur) dans le fichier de mise en forme actuel défini le contexte de rendu correspondant, la mise en page du XML actuel dans le contexte où le nom de l'activité correspond pour l'activité, si l'activité dans le fichier manifeste définit un thème, alors ADT
Editeur de rendu rendra votre présentation actuelle selon le thème. Cela signifie que si vous définissez le paramètre MainActivity
, définissez un thème. La lumière peut aussi être (autre). (Comprenez: vous avez ajouté tools: context = "activity name"
, la disposition XML rend l'activité spécifiée, établit un thème dans le fichier manifeste, comme illustré ci-dessus. Simulateur à droite Le style de thème suivra également les modifications correspondant au thème. .)
Pour résumer, ces propriétés visaient principalement au-dessus des bons outils, le statut d'affichage du temps de débogage du simulateur et la compilation ne fonctionnaient pas,
“Tools: context” est l'un des attributs de conception pouvant faciliter la création de mises en page au format XML dans la structure de développement. Cet attribut est utilisé pour montrer au framework de développement quelle classe d'activité est choisie pour l'implémentation de la présentation. Utilisation de “tools: context”, Android Studio choisit automatiquement le thème nécessaire pour la prévisualisation.
Si vous souhaitez en savoir plus sur certains autres attributs et outils utiles pour le développement d'applications Android, consultez la présente critique: http://cases.azoft.com/4-must -know-tools-for-effective-Android-development /
C'est la meilleure solution: https://developer.Android.com/studio/write/tool-attributes
Ce sont des attributs de conception que nous pouvons définir comme contexte
tools:context=".activity.ActivityName"
Adaptateur:
tools:context="com.PackegaName.AdapterName"
Vous pouvez accéder à la classe Java lorsque vous cliquez sur l'icône marquée. Les outils ont davantage de fonctionnalités telles que
tools:text=""
tools:visibility:""
tools:listItems=""//for recycler view
etx
tools:context=".MainActivity"
thisline est utilisé dans un fichier xml qui indique le fichier source Java utilisé pour accéder à ce fichier xml. cela signifie afficher cet aperçu XML pour les fichiers Java particuliers.