El hilador flota hacia abajo cuando está alineado horizontalmente

Si agrego el hilador en un LinearLayout horizontal o en una fila de la tabla por ejemplo como esto:

<LinearLayout android:id="@+id/linearLayout3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" > </EditText> <Spinner android:id="@+id/spinner1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> 

La ruleta flota hacia abajo. Flota abajo en Android 2.2, android 2.3 y android 3.2, pero funciona bien en android 4.0 lo arreglaron. Pero hay manera de hacerlo alinear con las otras vistas como el EditText en android 2.3.

Por flota abajo quiero decir:

 *********************** * if EditText is here * ************************ *********************** * Spinner will be here * ************************ 

Old post, pero puede ayudar:

Establecer baselineAligned en true no es necesario ya que es su valor predeterminado (explica aquí: http://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:baselinealigned )

Lo he arreglado por hardcoding una altura tanto a textview y spinner, y la configuración baselineAligned a FALSE.

Spinner es más pequeño que EditText, así que una manera de alinear ambos es añadir android: layout_height = "match_parent" a Spinner, y mantener LinearLayout y EditText con wrap_content.

Debería agregar lo siguiente a su editText:

 android:layout_gravity="center_vertical" 

Me enfrenté al mismo problema antes y me di cuenta de la respuesta después de intentar y modificar mi xml, aquí está mi código xml:

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearlayout1" android:orientation="horizontal" android:gravity="bottom"> <android.support.design.widget.TextInputLayout android:id="@+id/text_input_layout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="50"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editText" android:textSize="20dp" android:hint="Duration" android:layout_gravity="left" android:gravity="center" /> </android.support.design.widget.TextInputLayout> <Spinner android:id="@+id/spinner" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_weight="50" /> 

Simplemente establezca la gravity de su LinearLayout en la bottom y resolverá su problema.

En la representación lineal, la orientación es "horizontal". Los elementos de significado se colocan uno al lado del otro. Su EditText y Spinner sin embargo, ambos tienen android: layout_width = "fill_parent". Por lo tanto, desea colocar su EditText & Spinner lado a lado, pero también desea que fill_parent …

¿Qué harías si te dieran estas condiciones contradictorias?

Obviamente, esto es una contradicción, y las diferentes versiones de android dan diferentes prioridades a estos atributos.

Yo sugeriría cambiar los atributos EditText y Spinner a:

 <EditText ... android:layout_width="0dp" ... /> <Spinner ... android:layout_width="0dp" ... /> 

Y añada esto a su LinearLayout:

 <LinearLayout android:baselineAligned="true" ... /> 

Añadir android: baselineAligned = "false" a LinearLayout para crear vistas. Esto funciona en mi proyecto:

 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false" android:orientation="horizontal" > <EditText android:id="@+id/text" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <Spinner android:id="@+id/spinner" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> 

He encontrado la siguiente solución:

 <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical"/> <Spinner android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"/> </LinearLayout> 
  • Android: Vista inferior de navegación - cambia el icono del elemento seleccionado
  • Igualar padre para viewpager dentro de scrollview no funciona
  • Android configuración de texto ver el color de código java
  • Custom TableLayout con múltiples TextViews en filas
  • Color del texto del botón AlertDialog con la biblioteca de soporte v24.2.1
  • Establecer indicio de EditText en TextInputLayout a multilínea?
  • SwipeRefreshLayout detecta un evento de desplaza hacia abajo antes de iniciar onRefresh ()
  • Animar el cambio de diseño de ventana
  • Cómo hacer que un diseño relativo desplazable cuando tiene muchos puntos de vista de los niños?
  • Android no está recolectando el archivo derecha dimens.xml de la carpeta de valores
  • ¿Qué vista se debe utilizar para el nuevo diseño del material?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.