5

Ho un AppCompatAutoCompleteTextView con un'ancora più in basso rispetto allo AppCompatAutoCompleteTextView. Questo è di progettazione e non può essere modificato. Quando si scorre sul menu a discesa, il menu a discesa si sposta verso l'alto e sopra lo AppCompatAutoCompleteTextView.Come faccio a interrompere il menu a discesa AutoCompleteTextView dallo scorrimento su AutoCompleteTextView?

enter image description here

è che il modo in cui dovrebbe funzionare?

Questo è il mio codice:

Attività principale 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> 

Attività principale 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); 

EDIT: Devo dire che ho visto questo comportamento su Marshmallow .

risposta

3

Il problema sembra accadere a causa di android:popupBackground="@null"

+0

quindi è risolto? ish !. – Elltz

+0

Sì, questo lo risolve. – casolorz

2

Per la documentazione si dice che:

View per ancorare il menu a discesa completamento automatico a. Se non specificato, viene utilizzata la vista di testo .

Hai bisogno del tuo ancoraggio personalizzato? Immagino che il default non abbia questo comportamento probabilmente causato dal tuo layout relativo.

+0

Sfortunatamente il progetto richiede che il menu a discesa sia un po 'più in basso rispetto a dove si trova "AutoCompleteTextView'. – casolorz

+0

Quindi passerei a un LinearLayout con un orientamento verticale. Non c'è bisogno di un RelativeLayout qui che vedo. – egfconnor

+0

Lo stesso identico problema si verifica con 'LinearLayout'. Inoltre, se faccio vedere il menu a discesa sopra l'ancora, il problema in cui scorre in cima avviene con la barra degli strumenti e la barra di stato. Il problema sta effettivamente accadendo a causa di 'android: popupBackground =" @ null "' – casolorz

3

Rimuovi -> Android: popupBackground = "@ null"
da AutoCompleteTextView

e poi controllare.

+0

Yeap, questo è quello che dice la risposta. – casolorz