Прокрутка выпадающего меню над клавиатурой в autocompletetextview

У меня есть Autocompletetextview, отбрасывающий список предложений, вплоть до границы мягкой клавиатуры.

Затем, прокручивая список предложений: – (в пряничном телефоне) раскрывающееся меню автоматически увеличивает высоту, закрывая клавиатуру, что приятно, так как она показывает больше предметов. – (в эмуляторе ICS) выпадающее меню не увеличивает высоту над клавиатурой.

Связано ли это с каким-либо системным свойством? Есть ли способ заставить первое поведение также в ICS?

Solutions Collecting From Web of "Прокрутка выпадающего меню над клавиатурой в autocompletetextview"

Просто добавьте android: dropDownHeight = "100dp" в тег AutoCompleteTextView в вашем файле макета, он будет работать.

Позвольте мне объяснить мой маленький трюк, чтобы избежать «выпадающего» дисплея за клавиатурой. Трюк заключается в свойстве dropDownAnchor. Решение установлено на якорь с видом, расположенным в верхней части экрана, поэтому меню покинет это место и, следовательно, не будет закрыто клавиатурой. Например:

android:dropDownAnchor="@+id/topview"

Я знаю, что это уродливое решение, но этот контроль слишком ограничен.

Вы также можете использовать android:dropDownAnchor="@id/ для привязки выпадающего списка к представлению.

Вам нужно сделать две вещи. Сначала настройте режим мягкого ввода этой активности в манифесте.

 android:windowSoftInputMode="stateHidden|adjustResize" 

Это гарантирует, что представления отображаются снова, когда отображается клавиатура. Затем установите глобальный приемник макета в вашем oncreate в представлении верхнего уровня, чтобы выполнить вычисление высоты выпадающего списка при изменении макета. Отрегулируйте высоту выпадающего изображения как высоту всего под клавиатурой, если вы хотите.

 v.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { autoCompleteView.setDropDownHeight(view2.getHeight()); } 

Где view2 – это представление / макет, который включает все под автозаполнением.

Просто добавьте getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); К вашему фрагменту или активности