studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-layout android-edittext imagebutton

para - manual de programacion android pdf



Cómo colocar el botón dentro del texto de edición (11)

¿Qué le parece ubicarlo en un RelativeLayout como este?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content"> <!-- EditText for Search --> <EditText android:id="@+id/inputSearch" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Search whatever..." android:textSize="14dp" android:textStyle="italic" android:drawableLeft="@drawable/magnifyingglass" android:inputType="textVisiblePassword" android:theme="@style/EditTextColorCustom"/> <Button android:id="@+id/btn_clear" android:layout_width="14dp" android:layout_height="14dp" android:layout_marginTop="10dp" android:layout_alignRight="@+id/inputSearch" android:layout_marginRight="5dp" android:background="@drawable/xbutton" android:visibility="gone"/> </RelativeLayout>

También de esta manera podrá manejar la visibilidad del botón (GONE / VISIBLE) en el código.

Espero eso ayude.

Quiero colocar un botón de imagen dentro de EditText, pero no tengo Idea, por favor dígame cómo hacerlo, como se muestra en la figura. Gracias


Coloque su EditText dentro de un diseño lineal (horizontal) y agregue un Botón de imagen al lado (0 relleno). El ajuste del color de fondo de EditText y ImageButton se combinará.


En Material, hay un subrayado bajo EditText. En la mayoría de las aplicaciones, los iconos aparecen dentro de ese subrayado.

Para ese propósito, solo use relleno

android:paddingEnd = "@dimen/my_button_size"

No te olvides de relleno derecho para versiones sub 4.2.

<RelativeLayout ....> ... <EditText ... android:id="@+id/my_text_edit" android:textAlignment = "viewStart" android:paddingEnd = "@dimen/my_button_size" android:paddingRight = "@dimen/my_button_size" .../> <ImageButton .... android:layout_width="@dimen/my_button_size" android:layout_height="@dimen/my_button_size" android:layout_alignEnd="@id/my_text_edit" android:layout_alignRight="@id/my_text_edit"/> ... </RelativeLayout>

Limitará el texto a la imagen y la imagen no se superpondrá con el texto, por más tiempo que el texto sea.


Esto es bastante simple, siento. Usa el diseño relativo como tu diseño principal. Coloque el editText a la izquierda y ImageButton a la derecha con cualquiera,

  • propiedad alignRight para ImageButton
  • especificando el peso del diseño para cada uno de los campos

Hay una solución con compuesto seleccionable dibujable. Está funcionando muy bien, lo he probado

SOLUTION


Mi solución se ajustará a todos los tamaños de pantalla sin que editText vaya "detrás" del imageButton . Esto también usa recursos de Android, por lo que no necesita proporcionar su propio icono o recurso de cadena. Copie y pegue este fragmento donde desee una barra de búsqueda:

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:layout_margin="8dp" android:id="@+id/etSearch" android:hint="@android:string/search_go" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content"/> <ImageView android:id="@+id/ivSearch" android:background="@color/transparent_black" android:padding="2dp" android:layout_width="wrap_content" android:layout_margin="8dp" android:src="@android:drawable/ic_menu_search" android:layout_height="wrap_content" tools:ignore="contentDescription" /> </LinearLayout>

Restult:


No sé por qué quieres colocar ImageButton para lograrlo, lo que se puede hacer con la propiedad simple de EditText

android: drawableRight = "tu dibujable"

¿No puede ser un trabajo para ti?


Si desea que se pueda hacer clic en ese diseño y también en la imagen, puede hacer algo como esto

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" > <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" > </EditText> <ImageView android:id="@+id/imageView1" android:padding="5dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/editText1" android:layout_alignBottom="@+id/editText1" android:layout_alignRight="@+id/editText1" android:src="@drawable/ic_launcher" /> </RelativeLayout>

Salida:


Utilice la propiedad android: drawableLeft en EditText.

<EditText ... android:drawableLeft="@drawable/my_icon" />


puedes usar el siguiente código:

android:drawableRight="@android:drawable/ic_menu_search"


Si no desea hacer clic en esa imagen, puede usar la propiedad drawableRight para EditText ..

android:drawableRight="@drawable/icon"

Si desea hacer clic, use el siguiente código.

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" > <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Enter search key" /> <ImageButton android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:src="@drawable/search" android:layout_centerVertical="true" android:layout_margin="5dp" android:text="Button"/> </RelativeLayout>