LinearLayout no se expande dentro de ScrollView

Tengo un LinearLayout dentro de ScrollView que tiene android:layout_height="fill_parent" , pero no se expande a la altura máxima de ScrollView . Mi diseño se ve algo así como:

 level layout layout_width layout_height 1 LinearLayout fill_parent fill_parent 2 LinearLayout fill_parent wrap_content 3 (some irrelevant stuff) 2 ScrollView fill_parent fill_parent <-- this expands full height 3 LinearLayout fill_parent fill_parent <-- this does not (has orientation=vertical) (following stuff probably are irrelevant, but just to be sure:) 4 TextView fill_parent fill_parent 4 LinearLayout fill_parent wrap_content 

Puedo ver que LinearLayout no expande la altura completa de ScrollView porque en Eclipse en Android Layout Editor , si selecciono ScrollView (en el panel de Esquema) se resalta con un borde rojo que llena la pantalla hasta el fondo pero cuando selecciono LinearLayout su resaltado no se expande hasta la parte inferior de la pantalla. ¿Cómo puedo lograr que lo haga?

El efecto que bash lograr es tener un texto y un botón debajo (dentro de LinearLayout en el nivel 4 solo hay un botón). El texto puede ser lo suficientemente grande como para necesitar una barra de desplazamiento, en cuyo caso quiero que el usuario tenga que desplazarse hacia abajo para ver el botón. En caso de que el texto no sea lo suficientemente grande para una barra de desplazamiento, quiero que el LinearLayout contiene el botón se adhiera a la parte inferior de la pantalla.

Al principio, pensé que no debería publicar el XML completo porque generalmente es un rechazo para ver una gran porción de código en una pregunta. Sin embargo, parece que podría ser necesario, así que aquí está el diseño completo.

              

Por el momento, he recurrido a android:layout_gravity="bottom" en la problemática LinearLayout , que hace que el botón se adhiera a la parte inferior de la pantalla LinearLayout que LinearLayout . Pero eso también hace que el texto se adhiera a la parte inferior de la pantalla, que no es exactamente lo que buscaba.

Actualización: rayar eso, android:layout_gravity="bottom" hace que ScrollView no pueda, bueno, desplazarse. ¿Otras ideas?

Encontré la solución yo mismo al final. El problema no era con LinearLayout , sino con ScrollView (parece raro, teniendo en cuenta el hecho de que ScrollView estaba expandiendo, mientras que LinearLayout no).

La solución fue usar android:fillViewport="true" en ScrollView .

Sé que esta publicación es muy antigua, para aquellos que no quieren usar android:fillViewport="true" porque a veces no aparece el teclado edittext arriba. Usar el diseño relativo en lugar de LinearLayout resuelve el propósito.

¿Puedes proporcionar tu diseño xml? Hacerlo permitiría a las personas recrear el problema con un mínimo esfuerzo.

Es posible que deba establecer

 android:layout_weight="1" 

para el artículo que quieres expandir

Me he acostumbrado dinámicamente a esto. Tengo un LinearLayout y dentro de este ScrollView usado como un niño. Luego tomo de nuevo LinearLayout y agrego lo que quiera ver a este LinearLayout y luego este LinearLayout se agrega a ScrollView y finalmente agrega este ScrollView a LinearLayout. Luego puede obtener desplazamiento en su ScrollView y nada quedará visible.

LinearLayout (Parent) – ScrollView (hijo de LinerLayout) – LinearLayout (hijo de ScrollView) – agregue aquí textView, Buttons, spinner, etc., lo que desee. A continuación, agregue este LinearLyout a ScrollView. Bcoz solo aplica un CHILD para ScrollView y, por último, agrega este ScrollView a LinearLyout. Si el área definida supera el tamaño de la pantalla, obtendrás un Scroll en ScrollView.

En mi caso, no he dado el

orientación de LinearLayout (ScrollView’s Child)

Por lo tanto, de forma predeterminada toma horizontal, pero scrollview se desplaza verticalmente, por lo que le pedimos que compruebe si ‘android: orientation = “vertical”‘ está configurado en su ScrollView’s Child (en el caso de LinearLayout).

Este era mi caso, espero que ayude a alguien

.