studio para pantallas layouts layout_width layout_weight formulario examples diferentes constraint android xml android-layout dimension

layout_width - layouts para diferentes pantallas android



¿El valor es igual a match_parent o fill_parent en dimens.xml? (6)

Dependiendo de por qué quiere definir match_parent en un @dimen, este caso de uso podría ayudarlo a:

En lugar de definir el ancho y la altura en dimen.xml, puede definirlo como un estilo en styles.xml

yo suelo

//res/values/styles.xml <style name="IntroLayout"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> </style>

y

//res/values-sw600dp/styles.xml <style name="IntroLayout"> <item name="android:layout_width">520dp</item> <item name="android:layout_height">wrap_content</item> </style>

y usarlo como

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_gravity="center" style="@style/IntroLayout">

lo que me permite establecer dinámicamente los atributos de ancho y alto para dispositivos de diferentes tamaños sin tener que escribir ningún código y puede usar match_parent / wrap_content fine. también puede usar cualquier @dimen que haya definido previamente en el estilo si lo desea.

Utilizo esto porque el diseño para el teléfono y la tableta es el mismo, excepto que quiero arreglar el ancho en la tableta pero llenar el teléfono principal, por lo que ahorra tener que tener 2 diseños diferentes con básicamente el mismo xml

Basado aquí en la sección de Atributos XML , especifico lo siguiente en mi dimens.xml :

<dimen name="match_parent">-1dp</dimen> <dimen name="main_left_menu_user_account_width">@dimen/match_parent</dimen> <dimen name="main_left_menu_user_account_height">@dimen/match_parent</dimen>

Luego uso las dos dimensiones en mi diseño:

<ImageView android:id="@+id/userAccountImage" android:background="@drawable/user_account" android:layout_width="@dimen/main_left_menu_user_account_width" android:layout_height="@dimen/main_left_menu_user_account_height" />

Luego, cuando hago una vista previa de la Graphical Layout , se queja:

Debe suministrar un atributo layout_width.

Debe suministrar un atributo layout_height.

¿De verdad puedo definir un valor igual a match_parent en dimens.xml ?

Actualizar:

También probé esto, pero la vista previa todavía se queja:

<dimen name="main_left_menu_user_account_width">-1dp</dimen> <dimen name="main_left_menu_user_account_height">-1dp</dimen>

Utilizo con éxito wrap_content (el Graphical Layout no se queja en absoluto):

<dimen name="wrap_content">-2dp</dimen> <dimen name="main_right_menu_width">@dimen/wrap_content</dimen> <dimen name="main_right_menu_height">@dimen/wrap_content</dimen>


No lo creo. @ dimen / match_parent es una longitud específica con la unidad, mientras que match_parent es una bandera especial.


Para dispositivos HTC, use esto para lograr match_parent:

<dimen name="my_match_parent">-1.0px</dimen>


Primero crea attribs.xml:

<resources> <item name="match_parent" type="dimen">-1</item> <item name="wrap_content" type="dimen">-2</item> </resources>

Segundo uso tu dimens:

<dimen name="account_width">@dimen/match_parent</dimen> <dimen name="account_height">@dimen/wrap_content</dimen>


También puedes lograr esto usando el archivo integers.xml

archivo integers.xml :

<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="match_parent">-1</integer> <integer name="wrap_content">-2</integer> </resources>

Usar en dimens.xml :

<dimen name="main_right_menu_width">@integer/wrap_content</dimen>

También puede recibir una advertencia de lint , para suprimir su uso:

<dimen name="main_right_menu_width" tools:ignore="ReferenceType">@integer/wrap_content</dimen>


Usa esto, me funciona

<dimen name="custom_wrap_content">-2px</dimen> <dimen name="horizontal_border_height">@dimen /custom_wrap_content</dimen> <dimen name="custom_match_parent">-1px</dimen> <dimen name="vertical_border_height">@dimen /custom_match_parent</dimen>

Y la razón por la cual match_parent no se ejecuta. No puede suministrar una compilación en palabra clave como match_parent

Editar: Use px lugar de dp como lo sugiere Jarett Millard en los comentarios.