我有一个Autocompletetextview下拉建议列表,直到软键盘的边框。
然后,在滚动建议列表时: - (在姜饼手机中)下拉菜单自动增加覆盖键盘的高度,这很好,因为它显示更多的项目。 - (在ICS仿真器中)下拉菜单不会增加键盘的高度。
这与某些系统属性有关吗? 有没有办法强制ICS中的第一个行为?
答案 0 :(得分:26)
只需将android:dropDownHeight="100dp"
添加到布局文件中的AutoCompleteTextView
标记即可。
答案 1 :(得分:1)
让我解释一下我的小技巧,以避免键盘后面出现“下拉”。诀窍在于dropDownAnchor属性。 解决方案是使用位于屏幕顶部的视图设置锚点,因此菜单将从该位置离开,因此键盘不会覆盖。例如:
android:dropDownAnchor="@+id/topview"
我知道这是一个丑陋的解决方案,但这种控制太有限了。
答案 2 :(得分:1)
您还可以使用android:dropDownAnchor="@id/
将下拉菜单锚定到视图。
答案 3 :(得分:0)
你需要做两件事。 首先,在清单中调整该活动的软输入模式。
android:windowSoftInputMode="stateHidden|adjustResize"
这可确保在显示键盘时再次显示视图。然后,在顶级视图的oncreate中设置全局布局侦听器,以在布局更改时执行下拉高度计算。将下拉高度调整为键盘下方所有内容的高度,如果需要,请减去一些填充。
v.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
autoCompleteView.setDropDownHeight(view2.getHeight());
}
其中view2是包含自动完成视图下方所有内容的视图/布局。
答案 4 :(得分:0)
只需将getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
添加到您的片段或活动
答案 5 :(得分:0)
一种适用于所有分辨率的简单解决方案是将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" />