【问题标题】:Scrolling drop-down-menu over the keyboard in autocompletetextview在 autocompletetextview 中的键盘上滚动下拉菜单
【发布时间】:2013-02-07 12:10:11
【问题描述】:

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

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

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

【问题讨论】:

  • 您找到这个特定问题的答案了吗?我目前面临同样的问题。谢谢。
  • 奇怪的行为,面临同样的问题。

标签: android drop-down-menu autocompletetextview


【解决方案1】:

只需将android:dropDownHeight="100dp" 添加到布局文件中的AutoCompleteTextView 标记即可。

【讨论】:

  • 如果可以的话,我会给你+百万...你成就了我的一天!
  • 这是一种变通方法,鉴于不同的设备有不同的纵横比,100dp 并不是一个神奇的数字,您需要根据不同的设备和操作系统版本对其进行调整。但是,这是我迄今为止发现的唯一解决方法,所以我赞成这个答案。谢谢!
  • 几天的搜索...几天的痛苦..通过如此简单的修复。谢谢
  • 最直接最愚蠢的解决方案
【解决方案2】:

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

android:dropDownAnchor="@+id/topview"

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

【讨论】:

  • 不工作的解决方案。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

    • 它可以工作
    【解决方案5】:

    一个适用于所有分辨率的简单解决方案是使用 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" />
    

    【讨论】:

      【解决方案6】:

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

      android:windowSoftInputMode="stateHidden|adjustResize"
      

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

      v.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
      
              @Override
              public void onGlobalLayout() {
                      autoCompleteView.setDropDownHeight(view2.getHeight());
      }
      

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

      【讨论】:

        猜你喜欢
        • 2013-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多