Tengo un TextView alineado a la izquierda y un botón alineado a la derecha uno al lado del otro. Quiero que el botón ocupe tanto espacio como lo necesite a la derecha (según el texto que aparezca) y el texto de la izquierda para llenar todo lo que pueda y elipsify en cualquier desbordamiento.Android TextView y botón uno al lado del otro, ellipsize dejó TextView
|Long title that may or may not ellipsi... <Button with text>|
He leído y probado muchas otras publicaciones que parecen tener problemas similares, ninguna de las cuales me ha funcionado. Intenté usar tanto un LinearLayout con pesos como un RelativeLayout con layout_toLeftOf asignado, ninguno de los cuales da como resultado lo que necesito.
Este es mi código LinearLayout (con las partes innecesarias retiradas) donde le doy a TextView left un layout_weight de 1 y el botón a layout_weight de 0. Esto debería dar al botón derecho todo el espacio que necesita y dar el TextView el resto, pero en su lugar, el título izquierdo deja de aparecer y el botón derecho se deshace hacia un lado y se corta. He intentado reemplazar el ancho del Texto y el botón a 0 como lo he sugerido, lo que no cambia nada.
<LinearLayout
android:layout_height="@dimen/title_bar_height"
android:layout_width="fill_parent"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:layout_gravity="left|center_vertical"
android:gravity="left|center_vertical"
android:textSize="22sp"
android:lines="1"/>
<include layout="@layout/action_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"/>
</LinearLayout>
Sustitución de la layout_weight del TextView con 0 en realidad permite que el botón del lado derecho para encajar correctamente en la pantalla por completo, pero el texto a la izquierda aún no se presenta. Si tengo layout_weights puestos a 0 para TextView y el botón y luego cambio el ancho de TextView de 0dip a wrap_content, todo aparece pero el botón en su lugar es aplastado para llenar el espacio restante (y el texto interno se trunca).
Aquí está mi intento con un RelativeLayout:
<RelativeLayout
android:layout_height="@dimen/title_bar_height"
android:layout_width="wrap_content">
<include layout="@layout/action_buttons"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@layout/action_buttons"
android:gravity="center_vertical"
android:scaleType="center"
android:textSize="22sp"
android:ellipsize="end"
android:lines="1"/>
</RelativeLayout>
Todo alinea bien y se muestra, excepto que el TextView izquierda (cuando es demasiado largo) se superpone y aparece en la parte superior del botón en lugar de truncar y ellipsizing . ¿No debería android: layout_toLeftOf "@ layout/action_buttons" especificar que TextView debería permanecer en el límite izquierdo del botón?
He intentado aparentemente todo lo que puedo encontrar en este sitio relacionado con este problema, y todavía no puedo encontrar una solución. ¡Cualquier ayuda sería muy apreciada!
Con su ' RelativeLayout' intento, ¿has probado 'android: layout_width =" wrap_content "' para evitar que 'TextView' se superponga al' Botón' cuando el texto es largo? – Squonk
Sí, tanto android: layout_width = "wrap_content" y android: layout_width = "fill_parent" para el TextView dan el mismo problema de superposición. – socoho
Lo he intentado durante aproximadamente 30 minutos en el editor de diseño de eclipse y no puedo encontrar una respuesta, pero de nuevo los diseños no son mi punto más fuerte. Si no lo ha resuelto en 48 horas, agregue un comentario aquí comenzando con @MisterSquonk y debería alertarme: voy a poner una recompensa sobre la pregunta para ver si atrae a cualquier gurú de diseño. Sin embargo, toma 48 horas antes de que una pregunta sea elegible para una recompensa. – Squonk