android - studio - ¿Cómo evito que EditText se cambie de tamaño cuando el usuario está escribiendo?
seleccionar texto edittext android (9)
Da EditText
a maxWidth
. Eso debería evitar que cambie el tamaño más allá del ancho que proporcionó. Además, si desea que esté dentro de 1 línea, establezca también la configuración de maxLines
en 1.
Tengo un EditText
y un Button
juntos uno al otro en la misma línea horizontal. Se ve muy bien, excepto cuando el usuario ingresa una gran cantidad de texto, EditText
se redimensiona y el Button
se aplasta.
Tengo EditText
y Button
configurados en layout_width="wrap_content"
. "fill_parent"
estropea el diseño, y no quiero usar tamaños absolutos si no tengo que hacerlo: la forma en que ahora se ve genial tanto en paisaje como en retrato, simplemente no quiero que EditText
tamaño.
Mi diseño:
<TableLayout
android:id="@+id/homelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow>
<TextView
android:id="@+id/labelartist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Find artists:" />
</TableRow>
<TableRow>
<EditText
android:id="@+id/entryartist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="6"
android:background="@android:drawable/editbox_background"
android:editable="true"
android:padding="5px"
android:singleLine="true" />
<Button
android:id="@+id/okartist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:layout_weight="1"
android:text="Search" />
</TableRow>
</TableLayout>
La forma correcta de hacer esto sería configurar el android: minWidth y android: maxWidth igual al ancho que desee. De esta forma, no tendrá que ajustar su diseño para usar el android: layout_weight.
Por ejemplo, si quiere que su EditText siempre tenga 80 píxeles de densidad, no importa cuántos caracteres escriba, use lo siguiente:
android:minWidth="80dp"
android:maxWidth="80dp"
Lo que hago es en onCreate para la actividad, mido EditText primero y luego aplico su maxWidth.
Puede hacerlo usando un código similar al siguiente:
EditText someedittext = (EditText)findViewById(R.id.sometextview);
someedittext.setMaxWidth(someedittext.getWidth());
Para el uso de EditText
android:layout_width="0dp" - not required but preferred.
android:layout_weight="1"
Y para Button no especifique android:layout_weight
Solo usa:
android:layout_width="fill_parent"
para EditText y Button. También funcionará para EditText, pero es mejor tenerlo en ambos.
Tenía la consulta exacta. Pero tenía un EditText y un botón uno al lado del otro en un diseño lineal. Intenté con Android: layout_weight = "1" para EditText android: layout_width = "0dp" ¡Y funcionó perfectamente! ¡Muchas gracias!
Tuve un problema similar, pero no pude hacer que lo anterior funcionara. Lo que hice fue tomar el texto del cuadro EditText y luego formatearlo hasta el tamaño máximo que mi pantalla podría manejar. Cuando guardo esto en la base de datos, lo guardaré como texto de visualización y texto original.
Si vas a esta página , pongo una explicación más larga.
puedes definir el tamaño de tu texto de edición como se muestra arriba
android:minWidth="80dp"
android:maxWidth="80dp"
o
android:layout_width="60dp"
o
puede aplicar una imagen de fondo del tamaño que desee, pero no olvide definir su altura y ancho con wrap_content.
android:layout_width="wrap_content"
android:layout_height="wrap_content"