【问题标题】:How do I stop my AutoCompleteTextView dropdown from scrolling over my AutoCompleteTextView?如何阻止我的 AutoCompleteTextView 下拉菜单滚动到我的 AutoCompleteTextView?
【发布时间】:2016-05-05 15:35:11
【问题描述】:

我有一个AppCompatAutoCompleteTextView,其锚点比AppCompatAutoCompleteTextView 更下方。这是设计使然,无法更改。当我滚动下拉列表时,下拉列表会向上移动并位于 AppCompatAutoCompleteTextView 的顶部。

它应该这样工作吗?

这是我的代码:

主要活动 xml:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.autocompletetest.MainActivity">
    <android.support.v7.widget.AppCompatAutoCompleteTextView
        android:id="@+id/autocomplete"
        android:layout_width="match_parent"
        android:layout_height="32dp"

        android:layout_gravity="center"
        android:layout_marginLeft="8dp"
        android:layout_weight="1"
        android:alpha="0.87"
        android:background="#ffffff"
        android:dropDownWidth="match_parent"
        android:dropDownAnchor="@+id/anchor"
        android:gravity="center_vertical"

        android:hint="entervalue"
        android:inputType="textUri"
        android:popupBackground="@null"
        android:selectAllOnFocus="true"
        android:singleLine="true"
        android:textColor="#000000"
        android:textSize="14sp"
        android:layout_alignParentTop="true"
        android:textColorHint="#000000"
        />
    <View
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:layout_marginTop="3dp"
        android:layout_below="@+id/autocomplete"
        android:id="@+id/anchor"
        android:background="#aaaaaa"/>
</RelativeLayout>

主要活动java:

AppCompatAutoCompleteTextView auto = (AppCompatAutoCompleteTextView) findViewById(R.id.autocomplete);
        String[] countries = getResources().getStringArray(R.array.colors);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,countries);
        auto.setAdapter(adapter);

编辑:我应该提到我在 Marshmallow 上看到了这种行为。

【问题讨论】:

    标签: android android-layout android-support-library android-design-library


    【解决方案1】:

    这个问题似乎是因为android:popupBackground="@null"而发生的

    【讨论】:

      【解决方案2】:

      删除 --> android:popupBackground="@null"
      来自 AutoCompleteTextView

      然后检查一下。

      【讨论】:

      • 是的,答案就是这样。
      【解决方案3】:

      根据文档,它说:

      将自动完成下拉菜单锚定到的视图。如果未指定,则 使用文本视图本身。

      您是否需要自定义锚点?我想默认没有这种行为可能是由您的相对布局引起的。

      【讨论】:

      • 不幸的是,设计要求下拉菜单比AutoCompleteTextView 所在的位置更靠后。
      • 然后我会切换到垂直方向的 LinearLayout。我看到这里不需要RelativeLayout。
      • LinearLayout 也会出现完全相同的问题。此外,如果我让下拉菜单显示在锚点上方,那么它在顶部滚动的问题发生在工具栏和状态栏上。这个问题实际上是因为android:popupBackground="@null"
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2015-11-12
      • 1970-01-01
      相关资源
      最近更新 更多