#android #android-dialogfragment #autocompletetextview
#Android #android-dialogfragment #autocompletetextview
Вопрос:
В моем приложении есть фрагмент диалогового окна с autocompletetextview
в нем, но выпадающий список вместо выравнивания с верхней частью программной клавиатуры размещается позади, не предоставляя доступа к некоторым элементам.
Вот макет:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="10dp"
android:orientation="horizontal"
android:windowSoftInputMode="adjustPan|adjustResize">
<android.widget.AutoCompleteTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@ id/customDialogAtocompleteTextview"
android:layout_weight=".7"
android:layout_gravity="top" />
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".3">
<Button
android:id="@ id/customDialogBtOk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Aceptar"/>
<Button
android:id="@ id/customDialogBtSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Buscar"/>
<Button
android:id="@ id/customDialogBtMore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Mas"/>
</LinearLayout>
</LinearLayout>
Итак, как я могу выровнять его по клавиатуре?
Ответ №1:
Теория гласит, что android:windowSoftInputMode="adjustPan|adjustResize"
это должно быть сделано, но по какой-то причине этого не происходит, поэтому вам нужно сделать то же самое программно:
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
И происходит волшебство!!!
Комментарии:
1. Не могли бы вы уточнить ответ, его слишком сложно использовать, я не знаю, как получить диалоговое окно автозаполнения текстового представления
2. Это предложение не работает. Текстовый вид больше не скрыт, но выпадающий список также заблокирован.
Ответ №2:
[обновление] в моем случае .. потому что я использую bottomShetDialogFragment с автозаполнением внутри. выпадающий список не отображается, потому что я не установил dropdownanchor для автозаполнения. просто добавьте android:dropDownAnchor="@id/layout_above_this_autocomplete"
и работайте идеально
стиль рекламных новостей в вашем style.xml
<style name="AppBottomSheetDialogTheme" parent="Theme.Design.Light.BottomSheetDialog">
<item name="bottomSheetStyle">@style/AppModalStyle</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowSoftInputMode">adjustResize</item>
</style>
<style name="AppModalStyle" parent="Widget.Design.BottomSheet.Modal">
<item name="behavior_peekHeight">400dp</item>
</style>
в вашем bottomshetdialog framgnet.
oncreate -> setStyle(DialogFragment.STYLE_NORMAL, R.style.AppBottomSheetDialogTheme)
override fun getTheme(): Int {
return R.style.AppBottomSheetDialogTheme
}
Комментарии:
1. Спасибо, сэр! Потратил час, перепробовав дюжину вещей, и это было решение.