Estoy diseñando la interfaz de usuario de mi aplicación. Necesito un diseño como este:
(<y> son botones). El problema es que no sé cómo asegurarme de que TextView llene el espacio restante, con dos botones de tamaño fijo.
Si uso fill_parent para la Vista de texto, el segundo botón (>) no se puede mostrar.
¿Cómo puedo crear un diseño que se parezca a la imagen?
android
layout
android-layout
Luke Vo
fuente
fuente
Respuestas:
La respuesta de woodshy funcionó para mí, y es más simple que la respuesta de Ungureanu Liviu, ya que no se usa
RelativeLayout
. Estoy dando mi diseño para mayor claridad:fuente
alignLeft
yalignParentLeft
, etc., que nunca se pueden lograr conLinearLayout
.En caso de que <TEXT VIEW> se coloque en LinearLayout, establezca la propiedad Layout_weight de <y> en 0 y 1 para TextView.
En caso de RelativeLayout, alinee <y> a izquierda y derecha y establezca la propiedad "Diseño a la izquierda de" y "Diseño a la derecha de" de TextView a los identificadores de <y>
fuente
Si lo usa
RelativeLayout
, puede hacerlo de la siguiente manera:fuente
>
botón?Usando un
ConstraintLayout
, he encontrado algo comotrabajos. La clave es establecer las restricciones de borde derecho, izquierdo, superior e inferior de manera adecuada, luego establecer el ancho y la altura
0dp
y dejar que descubra su propio tamaño.fuente
TextView
tenga las restricciones izquierda y derecha. ElTextView
no se estira si el primeroButton
tiene la restricción correcta para elTextView
y el últimoButton
tiene la restricción izquierda para elTextView
.Es simple. Usted configura minWidth o minHeight, depende de lo que esté buscando, horizontal o vertical. Y para el otro objeto (el que desea llenar el espacio restante) establece un peso de 1 (establece el ancho para envolver su contenido), por lo que ocupará el resto del área.
fuente
puede usar el atributo high layout_weight. A continuación puede ver un diseño donde ListView ocupa todo el espacio libre con botones en la parte inferior:
fuente
Para aquellos que tienen el mismo problema técnico
<LinearLayout...>
que yo:Es importante especificar
android:layout_width="fill_parent"
, no funcionará conwrap_content
.OTOH, puede omitir
android:layout_weight = "0"
, no es obligatorio.Mi código es básicamente el mismo que el código en https://stackoverflow.com/a/25781167/755804 (por Vivek Pandey)
fuente
Debe evitar anidar el diseño relativo de 2 ya que el diseño relativo siempre hace 2 pases para dibujar (contra 1 para cualquier otro tipo de diseño). Se vuelve exponencial cuando los anidas. Debe usar un diseño lineal con ancho = 0 y peso = 1 en el elemento que desea llenar el espacio restante. Esta respuesta es mejor para el rendimiento y las prácticas. Recuerde: use el diseño relativo SOLO cuando no tenga otra opción.
fuente
Puede usar set the
layout_width
olayout_width
to0dp
(Por la orientación que desea llenar el espacio restante). Luego uselayout_weight
para llenar el espacio restante.fuente
utilice una distribución relativa para ajustar LinearLayout
fuente
encontré
fuente
Al usar un diseño relativo, puede hacer que una vista se extienda al anclarla a las dos vistas a las que se supone que se estira. Aunque no se tendrá en cuenta la altura especificada, Android aún requiere un atributo de altura, por eso escribí "0dp". Ejemplo:
fuente