Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Otros atributos y el namespace tools

8/20
Recursos

Aportes 23

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

<h1>En reasumen:</h1>

android:id

Cualquier objeto View puede tener un ID entero asociado para identificarse de forma única dentro del árbol.
Cuando se compila la aplicación, se hace referencia a este ID como un número entero, pero el ID se asigna normalmente en el archivo XML de diseño como una string del atributo id.
Este es un atributo XML común para todos los objetos View (definido por la clase View) y lo utilizarás muy a menudo.
La sintaxis de un ID dentro de una etiqueta XML es la siguiente: android:id="@+id/my_button"

Atributos específicos y atributos compartidos

Existen atributos compartidos y otros específicos para cada elemento.
Por ejemplo, el atributo android:background, que nos permite establecer un color, es un atributo que existe para todos los elementos de android; el atributo android:hint="Enter password" es un atributo especifico de la View EditText

Namespace tools

Si en algún momento no quieres utilizar un atributo especifico y quieres solamente utilizarlo en tiempo de diseño para poder ver como se vería, existe un namespace denominado tools.
Es un namespace que nos permite ver en tiempo de diseño como se verá nuestra aplicación sin generar una versione final de la aplicación con esos valores.

Por ejemplo, si se establece el valor del atributo android:text durante el tiempo de ejecución o si quieres ver el diseño con un valor diferente del valor predeterminado, puedes agregar tools:text para especificar texto solo para la vista previa de diseño.

El namespace tools, nos brinda la posibilidad de poder modelar de manera segura nuestra aplicación, ya que a un TexView le podemos colocar el texto en tiempo de diseño y este no se vera reflejado cuando la app se este ejecutando.

   <TextView
        android:id="@+id/tvMainTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorAccent"
        tools:text="Hello Kike!"
         />

SI quieren que en la vista de diseño se muestre como el sistema de android, solo le tienen que dar click en ese ojo, lo despliegan y seleccionan show system UI, y si lo quieren quitar le vuelven a dar click

la syntaxis del id en el .xml es @+id/(elNombredelElemento), ejemplo @+id/my_button o @+id/btn_login
una buena práctica es que el nombre del id haga referencia al elemento que se está usando, si es un botón ponerlo como

android:@+id/my_button_login
android:@+id/btn_login
android:@+id/my_txt_mensaje
android:@+id/txt_mensaje

el namespace de tools es bastante útil porque permite que el desarrollador pueda probar y visualizar en la ventana de diseño cambios que el realice en el activity pero estos cambios no se verán reflejados hasta que dejen de ser parte del namespace de tools y se convierta en un android.

#permite que el desarrollador pruebe cambiar el fondo a color rojo
tools:background="@color/red"
#si el cambio lo convence o es aprovado pues nomás basta con reemplazar la palabra tools por android y el cambio se reflejará en la app
tools:background="@color/red"

y así con todos los elementos.

Super bien explicado…

Les comparto mis notas de la Clase

  • Hay un atributo muy importante dentro de las vistas es el id:

    android:id="@+id/nombreID"
    

    🛈 Nota: como id se pueden poner las iniciales del elemento en cuestión, un contexto sobre sobre el layout y que representa dicho elemento. Por ejemplo: para un <TextView> en el Activity main que representa un título el id sería:

    android:id="@+id/tvMainTitle"
    

    Para referirse a este elemento en el código de la app se usaría la siguiente sintaxis:

    R.id.tvMainTitle
    

    🛈 Nota: se pueden referenciar imágenes en el xml de un Activity usando @mipmap/nombreImg o @drawable/nombreImg

    <h5>Namespace tools</h5>

    Permite ver cambios en la Interfaz en tiempo de diseño sin generar una versión final de la App con dichos cambios. Ejemplo:

    tools:text="Hello World!"
    

    Esto es mu útil para ver cómo quedará la estructura final de la App pero sin usar los valores finales.

**El namespace de Tools **me permitirá visualizar en tiempo de diseño el resultado de los atributos de mis componentes pero no se verán reflejados en tiempo de ejecución de mi aplicación.

Namespace juega un gran papel en el Diseño de Interfaces 😄

En Android se utiliza la unidad de medida sp para medir el tamaño de los textos.

Para poder referenciar imágenes en nuestro diseño podemos utilizar mipmap o drawable.


Namespace tools: son solo para el diseñador, cuando la aplicación se compile, los atributos que hayamos modificado a través d tools no se verán reflejados en la app final.


Esto ayuda para tener una mejor idea de como están distribuidos los elementos. y como se van a ver cuando ya se tenga un valor definido. Una vez se quieran incorporar los atributos de tools, solo lo cambiamos por el namespace de android.


Un id es un identificador único.


La unidad SP solo funciona para texto y nos ayuda a configurar el tamaño del mismo (textSize)

Android Studio admite una variedad de atributos XML en el espacio de nombres de las herramientas que permiten características en tiempo de diseño (como qué diseño mostrar en un fragmento) o comportamientos en tiempo de compilación (como qué modo de reducción para aplicar a sus recursos XML). Cuando compila su aplicación, las herramientas de compilación eliminan estos atributos para que no haya ningún efecto en el tamaño de APK o el comportamiento del tiempo de ejecución.

Para usar estos atributos, agregue el espacio de nombres de las herramientas al elemento raíz de cada archivo XML donde desea usarlos

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello Platzi!"
        tools:background="@color/colorPrimary"
/>

no me aparece el color red cuando agrego @color/red solo me aparecen 3 ya definidos

id: su identificador único con el que lo identificará en la clase R para el uso en la aplicación
tools: es el namespace utilizado para ver algo únicamente desde la vista de desarrollador, cuando la aplicación corra no se vera
sp: es una medida para la medida del texto unicamente

El namespace tools, viene siendo como comentar en css ?

tools, que útil

Atributos más comunes en los elementos:
android:id
android:layout_width
android:layout_height

**NOTA: **No todos los elementos tienen los mismos atributos.

El **atributo tools **sirve para el desarrollo en tiempo de edición, pero en la aplicación final no se serán mostrados.

La métrica sp es para definir únicamente el tamaño de un texto, ejemplo, android:textSize=“20sp”

sp son pixels de escala independiente (scaleable pixels)

No todos los elementos tienen los mismos atributos .
El namespace tools sirve solamente para ver los cambios en tiempo de diseño , entonces al compilar la aplicación Android Studio omitiria esto y no lo tomaria como valores finales.

elemento id utiliza este formato “@+id/tvMainTitle”

@mipmap [email protected] para colocar imagenes

sP para el tamaño del texto, ejemplo tools:textSize=“70sP”

El namespace tools permite básicamente una vista previa de cosas que sucederán en el uso de la app que son independientes al diseño, tales como llenara un formulario o colocar una imagen de perfil, con el namespace tools podemos darnos una idea de cómo se vería sin dejarlo en el aspecto final de la app, también se puede usar diferenciar un elemento al cual necesitamos seguir al momento de diseñar y no perderle de vista, con la confianza de que el atributo que se coloque en “tools” no se verá al final del desarrollo.

<h4>id</h4>

Este sirve para establecer un id con el que nos referenciaresmos a el elemento desde nuestro codifgo de logica (Kotlin/Java)

regla para nombrar los ids

LetrasMayusculasDelElementoEnMinusculas+layoutContext+LoQueRepresenta

<TextView android:id="@+id/tvMainTitle" />

se accede a los elementos por id, con el archivo R:

R.id.tvMainTitle
<h4>Tools</h4>

Nos permite realizar pruebas de codigo dinamico, por ejemplo texto, background, … lo usamos para evitar harcodear información

lo que agreguemos en tool solo sera con fines de preview del diseño, pero no aprarecera cunado se compile el proyecto

se necesita agregar el namespace de tools (linea 1 del ejemplo)

xmlns:tools="http:/ /schemas.android.com/tools"


<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:background="@color/cardview_shadow_start_color"
        tools:text="Bienvenido Juan"
        />

Otros atributos y el namespace tools
Cada elemento dentro de Android tiene diferentes atributos, algunos métodos son compartidos y algunos no.

  • id: Utiliza el formato @+id/<nombre>. Este id será la forma de acceder a este elemento por medio de la clase R. Si dentro de la aplicación necesitamos referirnos a ese elemento podemos hacerlos desde la clase R.
  • inputType: Permite seleccionar el teclado (numérico o de letras) para escribir en el EditText.
<h4>Namespace Tools</h4>

El namespace tools es una forma de dar valores a los atributos pero estos valores solo serán tomados en cuenta durante el desarrollo, si compilamos y corremos la aplicación será como si los valores no estuvieran definidos.

tools:background = "@color/red"

Para el tamaño de los textos, en Android se utiliza la propiedad textSize y la unidad de medida sp.

tools:textSize="60sp"
  • Los id son importantes, cada id es único para cada elemento en un app.

  • Namespace tools te sirve para simular como se verían características especificas para tus elementos en la app final, si queremos que esas caracterìsticas se apliquen a nuestra app debemos cambiar el namespace **tools ** X android.

  • Existen atributos que pueden compartir diferentes elementos en Android y muchos otros que no, por ejemplo: a un Button no podremos agregar la caracteristica de tipo de dato number porque no lo necesita sin embargo un elemnto EditText si puede contener un tipo de dato.