18

我有一个 Autocompletetextview 下拉建议列表,直到软键盘的边框。

然后,在滚动建议列表时: - (在姜饼手机中)下拉菜单会自动增加覆盖键盘的高度,这很好,因为它显示了更多项目。- (在 ICS 模拟器中)下拉菜单不会增加键盘的高度。

这与某些系统属性有关吗?有没有办法在 ICS 中强制第一个行为?

4

6 回答 6

27

只需添加android:dropDownHeight="100dp"AutoCompleteTextView布局文件中的标签,它就可以工作。

于 2013-02-23T10:27:13.413 回答
2

让我解释一下我的小技巧,以避免在键盘后面显示“下拉”。诀窍在于 dropDownAnchor 属性。解决方案是使用位于屏幕顶部的视图设置锚点,因此菜单将从该位置离开,因此不会被键盘覆盖。例如:

android:dropDownAnchor="@+id/topview"

我知道这是一个丑陋的解决方案,但这种控制太有限了。

于 2013-12-02T07:34:01.227 回答
1

您还可以使用android:dropDownAnchor="@id/ 将下拉列表锚定到视图。

于 2014-09-18T18:33:54.530 回答
1

一个适用于所有分辨率的简单解决方案是使用android:dropDownAnchor具有引用活动工具栏的资源 ID 的属性。

<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" />
于 2019-01-17T16:59:20.253 回答
1

只需添加getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);到您的片段或活动中

于 2016-11-02T18:54:40.083 回答
0

你需要做两件事。首先,在清单中调整该活动的软输入模式。

android:windowSoftInputMode="stateHidden|adjustResize"

这样可以确保在显示键盘时再次布局视图。然后,在顶层视图的 oncreate 中设置一个全局布局侦听器,以便在布局更改时进行下拉高度计算。将下拉高度调整为键盘下方所有内容的高度,如果需要,减去一些填充。

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

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

其中 view2 是包含自动完成视图下方所有内容的视图/布局。

于 2014-09-05T02:57:29.137 回答