Intereting Posts
Вход в Google не работает Покрытие кода Jacoco в студии android Идеи для мультиплатформенной зашифрованной мобильной системы хранения Java Какая игровая среда легко разрабатывает 2D-приложение для игры в Android? Espresso withText в TextView Не соответствует выбранному представлению MvvmCross: Как программно построить MvxListView с пользовательским адаптером? Лучшие учебные ресурсы для разработки мобильных мобильных приложений Карты Google не отображаются на Android в режиме выпуска Разумные размеры текстур в android Создание приложения в Android-источнике компилируется в систему / приложение вместо данных / приложений? Android Studio: ошибка анализа XML и URI не зарегистрирована Сохранить Не удалось завершить. ОШИБКА ECLIPSE Как обращаться с полномочиями SYSTEM_ALERT_WINDOW, которые не предоставляются автоматически на некоторых устройствах с предварительным указателем Marshmallow Как получить значок для Android-разрешения? Как рассчитать уровень заряда батареи в данный момент времени в Android

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

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

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

Если вы не хотите нажимать на это изображение, тогда вы можете использовать свойство 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> 

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

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

Вывод:

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

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

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

Для этого просто используйте прокладку

 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> 

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

Мое решение будет соответствовать всем размерам экрана без 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:

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

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

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

Как насчет размещения в 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) в коде.

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

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

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

Android: drawableRight = "ваш drawable"

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

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

РЕШЕНИЕ

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

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

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

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