¿Qué es "tools: context" en los archivos de diseño de Android?
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 utiliza "tools: context"?
- Android XML Error al analizar XML: basura después del elemento de documento
- Error al agregar CardView al diseño
- Exportación de una base de datos SQLite a un archivo XML en Android
- Android NDK r4 san-angeles problema
- Android: El servicio de intento anidado no se inicia después de llamar a Context.startService ()
¿Cómo sabe siquiera el camino exacto a la actividad que se escribe allí? ¿Se ve en el paquete de la aplicación, dentro del manifiesto?
¿Se limita a las clases que extienden Contexto o sólo actividades? ¿Es utilizable para los elementos de ListView, etc.?
- Cómo configurar el valor predeterminado del widget switch en android
- Android Databinding atributo xml duplicado
- ¿Cómo asignar id únicos a las vistas creadas dinámicamente?
- Cómo establecer el índice z utilizando algunos valores enteros
- Analizar archivo XML local en Android
- ¿Qué errores se detectan en "build" en Android Studio - rol de Gradle
- Android - xml - incluir el mismo diseño varias veces no funciona
- Inflar diseño de forma programática en otro diseño
Esta es probablemente la actividad que el editor de UI de herramientas utiliza para procesar su diseño (encontrará el tema correcto basado en la actividad). Esto se documenta aquí (alrededor de la mitad del artículo, suscríbase a esa página para mantenerse al día).
Ese atributo es básicamente la persistencia de la selección "Actividad asociada" sobre el diseño. En tiempo de ejecución, un diseño siempre está asociado a una actividad. Por supuesto, se puede asociar con más de uno, pero al menos uno. En la herramienta, necesitamos saber acerca de esta asignación (que en tiempo de ejecución sucede en la otra dirección, una actividad puede llamar a setContentView (diseño) para mostrar un diseño) con el fin de impulsar ciertas características.
En este momento, lo estamos usando sólo para una cosa: Elegir el tema correcto para mostrar 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, utilizaremos esto para generar funciones adicionales, como representar la barra de acción (que está asociada con la actividad), un lugar para añadir controladores onClick, etc.
La razón de esto es un atributo tools: namespace es que este es sólo un mapeo de diseño para su uso por la herramienta. El diseño en sí puede ser utilizado por múltiples actividades / fragmentos, etc Sólo queremos darle una manera de elegir un enlace de diseño de tal manera que podemos por ejemplo mostrar el tema derecho; Usted puede cambiarlo en cualquier momento, apenas como usted puede cambiar nuestro listview y los atascos del fragmento, el etc.
(Aquí está el changeset completo que tiene más detalles en esto )
Y sí, el enlace de Nikolay enumerado anteriormente muestra cómo el nuevo selector de configuración se ve y funciona
Una cosa más: El espacio de nombres "herramientas" es especial. La herramienta de empaquetado androide sabe ignorarlo, por lo que ninguno de esos atributos se empaquetará en el APK. Lo estamos utilizando para metadatos adicionales en el diseño. Es también donde, por ejemplo, los atributos para suprimir las advertencias de pelusa se almacenan – como herramientas: ignorar.
Según el sitio del proyecto de herramientas de Android :
Herramientas: contexto
Este atributo se establece normalmente en el elemento raíz de un archivo XML de presentación y registra la actividad a la que está asociada la presentación (en el momento del diseño, ya que obviamente un diseño puede ser utilizado por más de un diseño). Esto será utilizado por ejemplo por 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 como en manifiesto para especificar la clase de actividad sin el nombre completo del paquete de 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" es uno de los atributos de diseño que pueden facilitar la creación de diseño en XML en el marco de desarrollo. Este atributo se utiliza para mostrar al marco de desarrollo qué clase de actividad se selecciona para implementar el diseño. Usando "tools: context", 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 para Android, eche un vistazo a esta revisión: http://cases.azoft.com/4-must-know-tools-for-effective-android -desarrollo/
tools:context=".MainActivity"
thisline se utiliza en el archivo xml que indica que el archivo de origen java se utiliza para acceder a este archivo xml. Significa mostrar esta vista previa xml para los archivos de pericular java.
- Cómo evitar que un cuadro de diálogo se cierre cuando se hace clic en un botón
- Obtenga programaticamente el número de teléfono del teléfono Android