对话框片段中软键盘后面的Autocompletetextview下拉列表

时间:2016-10-11 10:26:30

标签: 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>

那么如何让它与键盘对齐?

2 个答案:

答案 0 :(得分:15)

理论说android:windowSoftInputMode="adjustPan|adjustResize"应该这样做但由于某种原因它不会,所以你必须以编程方式做同样的事情:

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Aand魔术发生!!!

答案 1 :(得分:0)

[更新] 在我的情况下..原因我在内部使用了带有自动完成功能的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>

在您的bottomshetlog framgnet中。 oncreate-> setStyle(DialogFragment.STYLE_NORMAL, R.style.AppBottomSheetDialogTheme)

override fun getTheme(): Int {
    return R.style.AppBottomSheetDialogTheme
}

result