theme temas studio recursos para estilos ejemplos descargar android layout attributes custom-attributes

temas - ¿Cómo referir el atributo android layout_width de un atributo personalizado?



styles android studio (4)

He encontrado una solución cambiando los valores / attrs.xml a:

<?xml version="1.0" encoding="UTF-8"?> <resources> <attr name="layoutWidth" format="dimension"> <enum name="fill_parent" value="-1" /> <enum name="match_parent" value="-1" /> <enum name="wrap_content" value="-2" /> </attr> </resources>

Ahora, puedo escribir en values ​​/ themes.xml :

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme" parent="android:Theme"> <item name="layoutWidth">match_parent</item> </style> <resources>

Pero la pregunta sigue siendo: ¿es posible referirse al parámetro Android layout_width desde este lugar?

Quiero separar el uso de mi aplicación en dispositivos xlarge y su uso en otros dispositivos para restringir el parámetro layout_width en 720dp para xlarge. Para este propósito, creo values ​​/ attrs.xml :

<?xml version="1.0" encoding="UTF-8"?> <resources> <attr name="layoutWidth" format="reference|dimension" /> </resources>

con parámetro personalizado layoutWidth para configurarlo en

android:layout_width="?layoutWidth"

Furtner, necesito especificar dos archivos themes.xml para los dispositivos xlarge y ordinarios en los directorios values-xlarge y values :

values-xlarge / themes.xml

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme" parent="android:Theme"> <item name="layoutWidth">720dp</item> </style> </resources>

values ​​/ themes.xml

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme" parent="android:Theme"> <item name="layoutWidth">What should I write here!?</item> </style> </resources>

Entonces, ¿cómo puedo hacer una referencia en el parámetro Android "fill_parent" en este lugar? Parece @android: layout_width / fill_parent , pero tengo un error de compilación:

No resource found that matches the given name (at ''layoutWidth'' with value ''@android:layout_width/fill_parent'').


No estoy seguro si puede agregar este atributo en algún lugar de sus recursos o etiquetas de estilo, pero puede ser útil (si es legal)

xmlns: android = "http://schemas.android.com/apk/res/android"

Esto especifica el espacio de nombre donde se definen layout_width y layout_height (así como también las constantes fill_parent y wrap_content).


Bueno, esta es una respuesta tardía ... pero, para la posteridad y la cordura, la respuesta se puede encontrar a continuación y se puede encontrar más información en http://developer.android.com/guide/topics/ui/themes.html

styles.xml:

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="YourStyle" parent="@android:style/TextAppearance.Medium"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> </style> </resources>

Esto debería funcionar para cualquier estilo principal que use android: layout_width, como parent = "@ android: style / Widget.TextView"


Debe crear el archivo attrs.xml dentro de la carpeta de valores y luego agregar el siguiente código:

<?xml version="1.0" encoding="utf-8"?> <resources> <item name="custom_match_parent" type="dimen">-1</item> <item name="custom_wrap_content" type="dimen">-2</item> </resources>

Para acceder al attrs.xml creado anteriormente, agregue la siguiente línea dentro de su archivo dimens.xml de la siguiente manera:

<dimen name="max_layout_width">@dimen/custom_match_parent</dimen>

Ahora para acceder a eso desde un archivo de diseño debe hacer algo como

<FrameLayout android:layout_width="@dimen/max_layout_width" android:layout_height="match_parent"> <!--Do what you like to do here--> </FrameLayout>

¡Espero que esto ayude! :-)