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.
- Android: ¿Cómo puedo implementar tutorial de primera vez como Go Launcher en mi aplicación?
- La señal de Seterror no está desapareciendo y la Búsqueda está funcionando
- Cambiar el nombre de la aplicación para Android
- La función Auto Mirroring for RTL no funciona en las versiones de Android inferiores a 6.0
- ¿Cómo referenciar un control de otro durante la inflación?
Por flota abajo quiero decir:
*********************** * if EditText is here * ************************ *********************** * Spinner will be here * ************************
- Android: Establecer márgenes en un FrameLayout mediante programación, no funciona
- Problema de edición de nueve parches de StateListDrawable
- FragmentTabHost - No se conoce ninguna pestaña null
- Cómo crear botones como Android Google Plus App
- ¿Cómo implementar una interfaz de usuario similar a la UI de aplicaciones recientes de Lollipop?
- ¿Es posible mostrar siempre la barra de acción cuando se utiliza adjustPan como modo de entrada suave?
- No se puede resolver el símbolo abc_ic_search_api_mtrl_alpha
- No se puede mostrar la vista en ViewGroup en el diseño de Android
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 Facebook inicio de sesión único – múltiples hashes clave posible?
- Uso de SurfaceTexture llenado por la previsualización de la cámara como entrada de Renderscript Asignación en Jelly Bean