¿Qué es "herramientas: contexto" en los archivos de diseño de Android?



Answers

Ese atributo es básicamente la persistencia para la selección de "Actividad asociada" arriba del diseño. En tiempo de ejecución, un diseño siempre está asociado a una actividad. Por supuesto, puede asociarse con más de uno, pero al menos uno. En la herramienta, necesitamos saber acerca de esta asignación (que en el 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: Elegir 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 conocemos la actividad asociada con el diseño, podemos elegir el tema correcto para mostrar para el diseño). En el futuro, usaremos esto para generar funciones adicionales, como renderizar la barra de acciones (que está asociada a la actividad), un lugar para agregar a los manejadores ClickClick, etc.

La razón por la cual se trata de una herramienta: el atributo de espacio de nombres es que esta es solo una asignación designtime para que la use la herramienta. El diseño en sí puede ser utilizado por múltiples actividades / fragmentos, etc. Solo queremos darle una forma de elegir un enlace de tiempo designado de modo que podamos, por ejemplo, mostrar el tema correcto; puede cambiarlo en cualquier momento, al igual que puede cambiar nuestra lista de vista y enlaces de fragmentos, etc.

(Aquí está el conjunto de cambios completo que tiene más detalles sobre this )

Y sí, here Nikolay enumerado arriba muestra cómo se ve y funciona el nuevo selector de configuración

Una cosa más: el espacio de nombres de "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 usando 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.

Question

Comenzando con una nueva versión reciente de ADT, he notado 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 usan las "herramientas: contexto"?

¿Cómo sabe siquiera el camino exacto a la actividad que está escrita allí? ¿Mira el paquete de la aplicación, dentro del manifiesto?

¿Está limitado a clases que extienden el contexto o solo actividades? ¿Es utilizable para elementos de ListView, etc.?




"Herramientas: contexto" es uno de los atributos de diseño que puede facilitar la creación de diseño en XML en el marco de desarrollo. Este atributo se usa para mostrar el marco de desarrollo que clase de actividad se elige para implementar el diseño. Usando "herramientas: contexto", Android Studio elige automáticamente el tema necesario para la vista previa.

Si desea obtener más información sobre algunos otros atributos y herramientas útiles para el desarrollo de aplicaciones de Android, eche un vistazo a esta revisión: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/




Proporciona contexto para las herramientas de desarrollo, en cuanto a dónde se utilizará este diseño, de modo que las herramientas puedan proporcionar una mejor asistencia a los desarrolladores, como por ejemplo:

Representación más precisa de las vistas previas, teniendo en cuenta la actividad de alojamiento y su tema asistentes más inteligentes, como las herramientas de soluciones rápidas antes mencionadas: el contexto es completamente opcional. Las herramientas de desarrollo pueden funcionar y funcionan sin eso. Esas herramientas pueden proporcionarle asistencia algo degradada, pero esa es su elección.

herramientas: el contexto (o cualquier atributo en el espacio de nombres de las herramientas) no tendrá impacto en el tiempo de ejecución. No lo he comprobado, pero espero que incluso se eliminen al empaquetar el APK, ya que no tienen uso en tiempo de ejecución.




Links