Подтвердить что ты не робот

Как разместить кнопку внутри текста редактирования

Я хочу разместить кнопку изображения внутри EditText, но у меня нет Idea, пожалуйста, скажите мне, как это сделать, как показано на рисунке. Благодаря

enter image description here

4b9b3361

Ответ 1

Если вы не хотите нажимать на это изображение, тогда вы можете использовать свойство drawableRight для EditText..

android:drawableRight="@drawable/icon"

Если вы хотите щелкнуть, используйте ниже код.

<?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>

Ответ 2

Если вы хотите, чтобы такой макет, а также изображение можно было щелкнуть, вы можете сделать что-то вроде этого

<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>

Выход:

enter image description here

Ответ 3

В материале есть это подчеркивание под EditText. В большинстве приложений значки отображаются внутри, которые подчеркивают.

введите описание изображения здесь

Для этой цели просто используйте padding

android:paddingEnd = "@dimen/my_button_size"

Не забывайте paddingRight для версий под 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>

Он будет ограничивать текст изображением, и изображение не будет перекрывать текст, однако длинный текст может быть.

Ответ 4

Мое решение будет соответствовать всем размерам экрана без editText, идущих "за" imageButton. Это также использует ресурсы Android, поэтому вам не нужно предоставлять свой собственный значок или строковый ресурс. Скопируйте и вставьте этот фрагмент, где бы вы ни искали панель поиска:

   <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:

enter image description here

Ответ 5

вы можете использовать код ниже:

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

Ответ 6

Как разместить его в RelativeLayout следующим образом:

<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>

Также вы сможете обрабатывать видимость кнопки (GONE/VISIBLE) в коде.

Надеюсь, что это поможет.

Ответ 7

Поместите свой EditText внутри линейного макета (горизонтально) и добавьте рядом с ним кнопку "Изображение" (0 дополнений). Установка цвета фона в EditText и ImageButton будет смешаться.

Ответ 8

Я не знаю, почему вы хотите разместить ImageButton для достижения, что можно сделать с помощью простого свойства EditText

android: drawableRight = "ваш drawable"

Разве это не может работать для вас?

Ответ 9

Есть решение с возможностью кликабельного соединения. Он работает очень хорошо - я его протестировал

РЕШЕНИЕ

Ответ 10

Это довольно просто, я чувствую. Используйте относительный макет в качестве родительского макета. Поместите editText влево и ImageButton вправо, используя либо

  • свойство alignRight для ImageButton
  • указав вес макета для каждого из полей

Ответ 11

Используйте свойство android: drawableLeft в EditText.

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