Realmente traté, pero no puedo entender cómo interpreta Android layout_weight
entorno ...problemas para entender XML Android layout_weight
Lo que estoy tratando de lograr es
- un encabezado en la parte superior con una altura fija
- un área de entrada en la parte inferior que contiene un EditarTexto y un botón
- una parte de contenido en el medio que se está tomando todo lo que queda de espacio
Al escribir me gustaría hacer crecer EditText a una altura específica y comenzar a desplazarme si el texto ingresado excede la altura disponible. Para hacer esto, necesito el entorno LinearLayout
para crecer junto con EditText.
Si defino una altura específica para el interior LinearLayout
, no crecerá. Si no lo hago, el diseño interior toma TODO el espacio en lugar de ScrollView, sin importar lo que intento usar layout_weight
. :(
Mi XML actual se parece a lo siguiente:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="I'm a header" />
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="bottom">
<LinearLayout
android:id="@+id/itemContainer"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</ScrollView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
android:padding="2dp"
android:gravity="bottom"
android:isScrollContainer="true"
android:background="@drawable/steel" >
<EditText
android:id="@+id/edittext01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:scrollbars="vertical"
android:fadingEdge="vertical"
android:fadingEdgeLength="60dp"
android:maxHeight="40dp"
android:textSize="15sp" />
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:layout_gravity="right"
android:text="Send"
android:textStyle="bold"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
Algún consejo son muy apreciadas
Gracias Mayra. Eso es exactamente lo que trato de hacer. Quizás kcoppock tenga otra idea. Si tiene que ser, terminaré creando diseños para diferentes soluciones. :(Configurar ScrollView en un tamaño específico Y al agregar layout_weight = 1, ScrollView tomará todo el espacio que puede obtener y se "encogerá" a su tamaño definido tan pronto como otro widget tome más espacio, ¿no? – stpn108
Sí, eso es la idea. –
Suena bien.Creo que hay un atributo setMultiLine para EditTexts. Si configura eso, y establece la altura en wrap_content, estoy bastante seguro de que se ampliará para ajustarse, y reducirá el ScrollView en consecuencia. – kcoppock