Изменение ширины 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)