android - layout_weight - linearlayout para que sirve
Android: ¿Cómo hacer que todos los elementos dentro de LinearLayout tengan el mismo tamaño? (4)
Me gustaría crear un diálogo para mostrar un título de video y etiquetas. Debajo del texto me gustaría agregar botones Ver, Editar y Eliminar y hacer que estos elementos tengan el mismo tamaño. ¿Alguien sabe cómo modificar el archivo de diseño .xml para hacer que los elementos dentro de LinearView tengan el mismo tamaño?
El archivo de diseño actual se ve así:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtTitle" android:text="[Title]" >
</TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtTags"
android:text="[Tags]" >
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnPlay"
android:text="View">
</Button>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnEdit"
android:text="Edit">
</Button>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnDelete"
android:text="Delete">
</Button>
</LinearLayout>
</LinearLayout>
Agradecería que alguien pudiera mostrar la solución modificando el contenido del archivo pegado.
¡Gracias!
Escribí un EqualSpaceLayout que creo que resolverá tu problema. Esto es similar al LinearLayout, pero no distorsiona el tamaño de las vistas secundarias. Compruébelo: http://www.dev-smart.com/archives/225
Otra forma es hacer android:layout_width="fill_parent"
y android:layout_weight="1"
esto también funcionará bien!
Usa LinearLayout con tu weightSum y crea elementos con igual layout_weight . Aquí hay un ejemplo ...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="5">
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_share_white_36dp"/>
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_search_white_36dp"/>
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_event_note_white_36dp"/>
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_brush_white_36dp"/>
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_menu_white_36dp"/>
</LinearLayout>
Entonces, la suma de peso de todos los elementos es 5. Aquí está la captura de pantalla ...
Tenga en cuenta que se utilizan iconos de Google Material Design . Espero que esto sea útil.
Use android:layout_width="0px"
y android:layout_weight="1"
en los tres Button
s. Eso dice que los botones no deberían ocupar más de 0 píxeles, pero los tres deberían dividir cualquier espacio extra entre ellos. Eso debería darte el efecto visual que deseas.