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: ¿Es posible calcular la altura de una vista antes de que se dibuje?
  • Animación de un grupo de niños en un grupo de vistas
  • Mejores prácticas al pedir a los equipos gráficos que diseñen la interfaz de usuario de la aplicación de Android
  • ActionBarSherlock Ítem Icono de ancho extraño con Android 4.3
  • Android Studio 2.0 (Vista previa 3b) xml cambios de diseño no se actualiza en apk?
  • Obtener la altura y el ancho de un diseño mediante programación
  • Respuesta de retorno de loopj asynchttpclient de Android
  • Agregando "divisores de sección" a mi diseño?
  • Utilice otro conjunto de recursos en Android (no tiempo de ejecución, pero compiletime)
  • Iniciar otra actividad (por Intent) en la mitad de la pantalla
  • estilo no se aplica
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.