studio - ¿Qué es “herramientas: contexto” en los archivos de diseño de Android?
tools showin android studio (6)
A partir de una nueva versión reciente de ADT, he observado este nuevo atributo en los archivos XML de diseño, por ejemplo:
<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" />
¿Para qué se usa "tools: context"?
¿Cómo sabe siquiera la ruta exacta a la actividad que está escrita allí? ¿Mira el paquete de la aplicación, dentro del manifiesto?
¿Se limita a las clases que extienden el contexto o solo a las actividades? ¿Es utilizable para elementos de ListView, etc.?
1. Descripción
tools: context = "activity name"
no se empaquetará en el apk
Solo el Editor de Diseño ADT
en su conjunto de archivos de Diseño actual correspondiente al contexto de representación, muestre su Diseño actual al representar el contexto es el nombre de la actividad corresponde a la actividad, si la actividad en el archivo de manifest
establece un Tema, luego el Editor de Diseño ADT
representará su Diseño actual de acuerdo con el Tema. Significa que si configura MainActivity
establece un Tema. La Luz (la otra), luego se ve en el administrador de diseño visual o control de fondo de lo que debería ser el Tema. La luz se parece a. Solo para mostrarte lo que ves es lo que obtienes resultados.
Algunas personas verán entenderá algunas, otras personas verán que tampoco saben, agregaré algunas palabras de explicación:
2. Muestra
Tome
tools:text
simplestools:text
, por ejemplo, algunas imágenes más, conveniente para entender mejor lastools: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 adoptóandroid: text
y usa lastools:text
enTextView
2, en el lado derecho del editor de diseño, mostrará el nombre desample name1
, la fuente desample name2
dos, si después de ejecutar el código para compilar, se generó elapk
, el terminal muestra solo el nombre desample name1
, no muestra elsample name2
las palabras. Puedes intentar correr, ver como funciona el efecto.
3. descripcion especifica
1.Las tools: context = "activity name"
no se empaquetarán en la apk
(entendiendo: se comenta el equivalente a esto, no se compila el efecto).
2. Solo el Editor de Diseño ADT
(es decir, para el ícono anterior en el lado derecho del simulador) en el conjunto de archivos del Diseño actual correspondiente al contexto de representación, el Diseño del XML actual al representar el contexto es el nombre de la actividad que corresponde a la actividad, si la actividad en el archivo de manifiesto establece un Tema, entonces el Editor de Diseño ADT
renderizará su Diseño actual de acuerdo con el Tema. Significa que si configura MainActivity
establece un Tema. La Luz también puede ser (otra) (entienda: usted agregó tools: context = "activity name"
, el diseño XML representa la actividad especificada, establece un Tema en el archivo de manifiesto, en la imagen de arriba a la derecha, el estilo del Tema también seguirá los cambios correspondientes) al tema.)
4.summary
En resumen, estas propiedades dirigidas principalmente a las herramientas correctas, el estado de depuración del simulador muestra el estado y la compilación no funciona,
"Herramientas: contexto" es uno de los atributos de diseño que puede facilitar la creación de diseños en XML en el marco de desarrollo. Este atributo se usa para mostrar al marco de desarrollo qué clase de actividad se elige para implementar el diseño. Usando “herramientas: contexto”, Android Studio elige el tema necesario para la vista previa automáticamente.
Si desea obtener más información sobre otros atributos y herramientas útiles para el desarrollo de aplicaciones de Android, consulte esta revisión: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/
Ese atributo es básicamente la persistencia de la selección de "Actividad asociada" sobre el diseño. En el tiempo de ejecución, un diseño siempre está asociado con una actividad. Por supuesto, puede asociarse con más de uno, pero al menos uno. En la herramienta, necesitamos conocer esta asignación (que en tiempo de ejecución ocurre en la otra dirección; una actividad puede llamar a setContentView (diseño) para mostrar un diseño) con el fin de controlar ciertas características.
En este momento, lo estamos usando solo para una cosa: seleccionar el tema correcto para mostrarlo en un diseño (ya que el archivo de manifiesto puede registrar temas para usar en una actividad , y una vez que sepamos la actividad asociada con el diseño, podemos elegir el tema correcto para mostrar para el diseño). En el futuro, usaremos esto para impulsar funciones adicionales, como la representación de la barra de acción (que está asociada con la actividad), un lugar para agregar los controladores onClick, etc.
La razón por la que esto es un atributo de herramientas: espacio de nombres es que solo es un mapeo de tiempo de diseño para que lo use la herramienta. El diseño en sí puede ser utilizado por múltiples actividades / fragmentos, etc. Solo queremos ofrecerle una manera de elegir un enlace de tiempo de diseño para que podamos, por ejemplo, mostrar el tema correcto; puede cambiarlo en cualquier momento, al igual que puede cambiar nuestra vista de lista y enlaces de fragmentos, etc.
(Aquí está el conjunto de cambios completo que tiene más detalles sobre this )
Y sí, here Nikolay que aparece arriba muestra cómo se ve y funciona el nuevo selector de configuración
Una cosa más: el espacio de nombres "herramientas" es especial. La herramienta de empaquetado de Android sabe ignorarlo, por lo que ninguno de esos atributos se empaquetará en el APK. Lo estamos utilizando para metadatos adicionales en el diseño. También es donde, por ejemplo, se almacenan los atributos para suprimir las advertencias de pelusa, como herramientas: ignorar.
Probablemente, esta es la actividad que utilizan las herramientas del editor de IU para representar su diseño (encontrará el tema correcto en función de la actividad). Esto se documenta here (alrededor de la mitad del artículo; suscríbase a esa página para mantenerse al día).
Según el tools.android.com/tech-docs/tools-attributes :
herramientas: contexto
Este atributo generalmente se establece en el elemento raíz en un archivo XML de diseño, y registra con qué actividad está asociado el diseño (en el momento del diseño, ya que obviamente un diseño puede ser utilizado por más de un diseño). Esto lo utilizará, por ejemplo, el editor de diseño para adivinar un tema predeterminado, ya que los temas se definen en el Manifiesto y se asocian con actividades, no con diseños. Puede usar el mismo prefijo de punto que en los manifiestos para especificar la clase de actividad sin el nombre completo del paquete de la aplicación como prefijo.
<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
Utilizado por: editores de diseño en Studio & Eclipse, Lint
tools:context=".MainActivity"
línea se usa en un archivo xml que indica qué archivo fuente java se usa para acceder a este archivo xml. significa mostrar esta vista previa xml para archivos java perticulares.