Soy nuevo en el desarrollo de Android y tengo una pregunta sobre cómo establecer el peso en un diseño lineal.Android Layout Weight
Estoy tratando de 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. Así ...
| [#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 lo entiendo ajustar [androide: layout_weight = "2"] para los diseños lineales que llevan a cabo los botones deben hacer que ocupan más espacio que la edición de texto, pero se hace lo contrario para mí, haciéndolos a los dos de la mitad del tamaño.
| [Btn] [Btn] [#####et#####] |
He intentado tantas combinaciones diferentes que ni siquiera puedo recordarlas, y ninguna ha funcionado.
Ajuste de las anchuras de los diseños lineales a 0dip trabajó como quería. No sabía que era una opción. Tiene sentido por qué eso funcionaría donde wrap_content no. Establecer el ancho de wrap_content cuando no hay contenido hace que desaparezca, pero establecerlo en 0dip permite que se extienda desde cero hasta lo más grande que deba ser. Muchas gracias. – UnluckyDevil
+1 por esta respuesta. ¡Estaba teniendo el peor momento que alguna vez intenté hacer que las pesas funcionaran! – Snailer
Establecer layout_width a "fill_parent" y layout_weight a un valor flotante como "0.2", "0.85" etc. también funciona. En este caso, cuanto mayor sea el número, menor será el tamaño de la vista. ¿podría explicar si esta es una forma aceptable de hacerlo? – Yar