Изменение ширины AutoCompleteTextView в Android

Я был в тупике в течение нескольких дней. У меня есть autoCompleteTextView и кнопка, разделенная на 50/50 в моем макете. Автозаполнение работает, но предложения занимают половину экрана (что эквивалентно размеру, который обрабатывает мой TextView). Как я могу изменить это, чтобы охватить всю ширину?

Простите мои ужасные навыки рисования:

Синий = AutoCompleteTextView Красный = желаемые предложения автозаполнения

Это кажется тривиальной проблемой, но просто изменение ширины в fill_parent не работает. Любые идеи xml или программно?

РЕШЕНИЕ: myAutoCompleteTextView.setDropDownWidth(ViewGroup.LayoutParams.MATCH_PARENT)

enter image description here

EDIT: Мой первый вопрос, похоже, решен, но теперь, если я переключу свою кнопку и мой autoCompleteTextView, я получаю еще одну странную проблему. Ширина начинается с начала текста. Оставив меня с нежелательным результатом.

РЕШЕНИЕ: См. edit 1 от пользователя: vikram

enter image description here

Ответы

Ответ 1

Вы можете установить этот атрибут в описании этого виджета, используя атрибут:

android:dropDownWidth="match_parent"

Если вы хотите сделать это в программном виде java, используйте метод setDropDownWidth(int):

myAutoCompleteTextView.setDropDownWidth(int)

Изменить 1:

Point pointSize = new Point();

getWindowManager().getDefaultDisplay().getSize(pointSize);

myAutoCompleteTextView.setDropDownWidth(pointSize.x);

Ответ 2

Я нахожу setDropDownAnchor() намного удобнее.

Просто передайте идентификатор некоторого вида, а раскрывающееся представление будет соответствовать его ширине и положению (независимо от того, где находится фактическое текстовое представление).

В вашем примере, который может быть родителем обоих: кнопки и текстового представления.

Ответ 3

Вы также можете настроить, где начинается ширина:

myAutoCompleteTextView.setDropDownHorizontalOffset(int offset)