Как разместить кнопку внутри текста редактирования
Я хочу разместить кнопку изображения внутри EditText, но у меня нет Idea, пожалуйста, скажите мне, как это сделать, как показано на рисунке. Благодаря
![enter image description here]()
Ответы
Ответ 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" />