如何在视图后面显示AutoCompleteTextView的下拉菜单?

时间:2019-01-01 17:16:53

标签: android dropdown autocompletetextview

我在AutoCompleteTextView中使用了Service。用户键入AutoCompleteTextView后,将显示如下所示的下拉列表:

here

下拉菜单显示在service布局的顶部,但我想要的显示在其后面,如下所示:

before

service使用以下布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    >


    <View
        android:id="@+id/bg"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:background="@drawable/floating_service_bg"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        />

    <android.support.constraint.ConstraintLayout
        android:id="@+id/collapse_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:visibility="visible"
        app:layout_constraintBottom_toBottomOf="@id/bg"
        app:layout_constraintLeft_toLeftOf="@id/bg"
        app:layout_constraintTop_toTopOf="@id/bg"
        >

        <ImageView
            android:id="@+id/icon"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_margin="8dp"
            android:src="@drawable/star"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

        <ImageView
            android:id="@+id/close_btn"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:background="@drawable/ic_close"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            tools:ignore="ContentDescription"/>
    </android.support.constraint.ConstraintLayout>

    <View
        android:id="@+id/drop_down_anchor"
        android:layout_width="0dp"
        android:layout_height="0.5dp"
        android:layout_margin="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        />

    <LinearLayout
        android:id="@+id/expanded_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:orientation="horizontal"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@id/bg"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintLeft_toRightOf="@id/collapse_view"
        app:layout_constraintRight_toRightOf="@id/bg"
        app:layout_constraintTop_toTopOf="@id/bg">


        <AutoCompleteTextView
            android:id="@+id/searchBox"
            android:layout_width="0dp"
            android:layout_height="48dp"
            android:layout_weight="1"
            android:background="@color/transparent"
            android:dropDownAnchor="@id/drop_down_anchor"
            android:gravity="left"
            android:hint="@string/searchboxHint"
            android:imeOptions="actionDone"
            android:inputType="textPhonetic"
            android:padding="15dip"
            android:selectAllOnFocus="false"
            android:singleLine="true"
            android:textColor="#000"
            android:textColorHint="#a5a5a5"
            android:textIsSelectable="true"
            android:textSize="16sp"

            />

        <ImageView
            android:id="@+id/search_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:src="@drawable/ic_search_24dp"
            android:visibility="visible"

            />


    </LinearLayout>


</android.support.constraint.ConstraintLayout>

DropDownAdapter类:

class DropDownAdapter extends ArrayAdapter<String> {
    ArrayList<String> wordList;
    ArrayList<String> meanList;

    public DropDownAdapter(ArrayList<String> words, ArrayList<String> means) {
        super(context, R.layout.drop_down_layout, words);
        this.wordList = words;
        this.meanList = means;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
          .getSystemService(LAYOUT_INFLATER_SERVICE);

        View rowView = (View) inflater.inflate(R.layout.drop_down_layout,
          parent, false);

        TextView     leftTextView  = (TextView) rowView.findViewById(R.id.item_word);
        TextView     rightTextView = (TextView) rowView.findViewById(R.id.item_mean);
        LinearLayout dropDownItem  = (LinearLayout) rowView.findViewById(R.id.drop_down_item);

        final int pos = position;

        leftTextView.setText(wordList.get(pos));
        rightTextView.setText(meanList.get(pos));
        return rowView;
    }

}

能给我建议一个解决方案吗?

0 个答案:

没有答案