Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

android:dropDownAnchor="@+id/topview"

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

Ответ 3

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

Ответ 4

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

android:windowSoftInputMode="stateHidden|adjustResize"

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

v.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

        @Override
        public void onGlobalLayout() {
                autoCompleteView.setDropDownHeight(view2.getHeight());
}

Если view2 - это представление/макет, который включает все, что находится ниже автозаполнения.

Ответ 5

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

Ответ 6

Простое решение, которое прекрасно работает со всеми разрешениями, - это использовать свойство android:dropDownAnchor с идентификатором ресурса, который ссылается на панель инструментов вашей активности.

<my.app.ContactAutoCompleteTextView
                            android:id="@+id/autocomplete_textview"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:gravity="top"
                            android:dropDownAnchor="@id/appbar"
                            android:inputType="text|textMultiLine|textCapSentences|textAutoCorrect"
                            android:paddingBottom="12dp"
                            android:textColor="@color/text_primary"
                            android:textColorLink="@color/secondary"
                            android:textSize="@dimen/text_medium" />