studio paleta gama fondo colores color codigos cambiar android layout

paleta - Peso del diseño de Android



material design android (8)

En lineLayout establece WeightSum = 2;

Y distribuya el peso a sus hijos como desee que se muestren. Le di peso = "1" al niño. De modo que ambos distribuirán la mitad del total.

<LinearLayout android:id="@+id/linear1" android:layout_width="match_parent" android:layout_height="wrap_content" android:weightSum="2" android:orientation="horizontal" > <ImageView android:id="@+id/ring_oss" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ring_oss" /> <ImageView android:id="@+id/maila_oss" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/maila_oss" /> </LinearLayout>

Soy nuevo en el desarrollo de Android y tengo una pregunta sobre cómo establecer el peso en un diseño lineal.

Estoy intentando crear una fila con dos botones personalizados y un texto de edición personalizado. El texto de edición solo debe ocupar tanto espacio como su contenido, y los dos botones deben expandirse horizontalmente para llenar el resto del espacio disponible en la fila. Me gusta esto...

| [#Button++#] [#Button--#] [et] |

Después de varios intentos, esto es lo más cerca que puedo llegar a lo que quiero, a pesar de que parece demasiado complicado.

| [Button] [Button] [###ET###] |

<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal|center_vertical" android:layout_weight="1" > <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" > <RelativeLayout android:id="@+id/btn_plus_container" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageButton android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/btn_plus" android:background="@drawable/btn" android:layout_centerInParent="true" ></ImageButton> <TextView android:textColor="#FAFAF4" android:id="@+id/tv_dice_plus" android:text="@string/tv_plus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" ></TextView> </RelativeLayout> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" > <RelativeLayout android:id="@+id/btn_minus_container" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageButton android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/btn_minus" android:background="@drawable/btn" android:layout_centerInParent="true" ></ImageButton> <TextView android:textColor="#FAFAF4" android:id="@+id/btn_minus" android:text="@string/tv_minus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" ></TextView> </RelativeLayout> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" > <EditText android:textColor="#FAFAF4" android:text="@string/et_output" android:id="@+id/et_output" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="number" android:selectAllOnFocus="true" android:minWidth="50sp" android:maxWidth="50sp" android:background="@drawable/tv_black_background3" android:textColorHighlight="#c30505" ></EditText> </LinearLayout> </LinearLayout>

Como entiendo configurar [android: layout_weight = "2"] para los diseños lineales que sostienen los botones debería hacer que ocupen más espacio que el texto de edición, pero hace lo contrario para mí, por lo que ambos tienen la mitad del tamaño.

| [Btn] [Btn] [#####et#####] |

He probado tantas combinaciones diferentes que ni siquiera puedo recordarlas, y ninguna ha funcionado.


No funciona porque está utilizando fill_parent como ancho. El peso se usa para distribuir el espacio vacío restante o quitar espacio cuando la suma total es mayor que LinearLayout. Establezca sus anchuras a 0 dips en su lugar y funcionará.


Piénsalo de esa manera, será más simple

Si tiene 3 botones y sus pesos son 1,3,1 en consecuencia, funcionará como tabla en HTML

Proporcione 5 porciones para esa línea: 1 porción para el botón 1, 3 porción para el botón 2 y 1 porción para el botón 1


Una razón más que encontré (por vago que pueda parecer). Lo de abajo no funcionó.

LinearLayout vertical

LinearLayout altura fillparent + peso

LinearLayout altura fillparent + peso

LinearLayout altura fillparent + peso

EndLinearLayout

¿Qué trabajo fue?

Disposición relativa

LinearLayout vertical

LinearLayout altura fillparent + peso

LinearLayout altura fillparent + peso

LinearLayout altura fillparent + peso

EndLinearLayout

EndRelative Lay out

Suena vago por un diseño de raíz con Lineal y los pesos debajo no funcionaban. Y cuando digo "no funcionó", quiero decir, que después de ver el diseño gráfico entre varias resoluciones, la consistencia de la pantalla se rompió a lo grande.


los valores de peso 0-1 comparten la distribución del espacio disponible (después de establecer layout_width = "0px") en proporción al valor del peso. Los elementos de vista con peso no especificado (sin entrada de peso) obtienen peso 0 lo que significa que no obtienen expansión.

Una alternativa simple sin entradas de peso es agregar una marquesina a una vista con texto que le indique que se expanda del mínimo necesario para el texto (wrap_content) al espacio disponible. EditText: android: layout_width = "wrap_content" android: ellipsize = "marquee"


supongo que establecería el ancho de EditText s en wrap_content y wrap_content los dos botones en LinearLayout cuyo ancho es fill_parent y weight establecido en 1.


android:Layout_weight se puede usar cuando no adjuntas un valor fijo a tu ancho como fill_parent etc.

Haz algo como esto:

<Button> Android:layout_width="0dp" Android:layout_weight=1 -----other parameters </Button>


<LinearLayout android:id="@+id/linear1" android:layout_width="match_parent" android:layout_height="wrap_content" android:weightSum="9" android:orientation="horizontal" > <ImageView android:id="@+id/ring_oss" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="3" android:src="@drawable/ring_oss" /> <ImageView android:id="@+id/maila_oss" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="3" android:src="@drawable/maila_oss" /> <EditText android:id="@+id/edittxt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="3" android:src="@drawable/maila_oss" /> </LinearLayout>