5

Mam AppCompatAutoCompleteTextView z kotwicą, która jest mniejsza niż AppCompatAutoCompleteTextView. Jest to zgodne z projektem i nie można go zmienić. Kiedy przewijam listę rozwijaną, rozwijanie przesuwa się w górę i na wierzchu AppCompatAutoCompleteTextView.Jak zatrzymać przewijanie listy rozwijanej AutoCompleteTextView przez mój AutoCompleteTextView?

enter image description here

jest, że należy tak to działa?

To jest mój kod:

Główna działalność 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> 

Główna działalność 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: należy wspomnieć, widziałem to zachowanie na Marshmallow .

Odpowiedz

3

Problem pojawia się dziać z powodu android:popupBackground="@null"

+0

, więc jego rozwiązanie? ish !. – Elltz

+0

Tak, to rozwiązuje. – casolorz

2

Per dokumentacji jest napisane, że:

Zobacz zakotwiczyć autouzupełniania rozwijalnej. Jeśli nie zostanie określony, zostanie użyty sam widok tekstowy .

Czy w ogóle potrzebujesz niestandardowej kotwy? Domyślam się, że ustawienie domyślne nie ma takiego zachowania, które prawdopodobnie wynika z twojego układu względnego.

+0

Niestety, projekt wymaga, aby rozwijane menu znalazło się nieco dalej od miejsca, w którym znajduje się "AutoCompleteTextView". – casolorz

+0

Przełączałem wtedy na LinearLayout z orientacją pionową. Nie ma potrzeby używania RelativeLayout, który widzę. – egfconnor

+0

Dokładnie ten sam problem występuje w przypadku 'LinearLayout'. Również jeśli pokażę rozwijane menu powyżej kotwicy, problem z przewijaniem na górze będzie się pojawiał wraz z paskiem narzędzi i paskiem stanu. Problem rzeczywiście dzieje się z powodu 'android: popupBackground =" @ null "' – casolorz

3

Usuń -> android: popupBackground = "@ null"
z AutoCompleteTextView

a ponad to sprawdzić.

+0

Yeap, tak brzmi odpowiedź. – casolorz