У меня есть требование показать раскрывающийся список в AutoCompleteTextView, как только он получит фокус.Для этого я создал класс, расширяющий AppCompatAutoCompleteTextView.
public class DropDownAutoComplete extends AppCompatAutoCompleteTextView
implements View.OnFocusChangeListener , View.OnClickListener
{
@Override
public boolean enoughToFilter() {
return true;
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus)
{
if(getText().length()==0)
showDropDown();
}
}
@Override
public void onClick(View v) {
if(getText().length()==0)
showDropDown();
}
}
, кроме того, я использовал пользовательский макет для выпадающего элемента, предоставив его в адаптер.
customAdapter.setAdapter(new ArrayAdapter<String>(AddExpense.this,
R.layout.custom_autocomplete_dropdown_item, stringArray));
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_divider"
android:textColor="@color/autocomplete_text_color"
android:textAppearance="?android:attr/textAppearanceLarge"
style="?android:attr/dropDownItemStyle"
android:maxLines="1"
android:padding="8dp"
/>
background_divider.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/black" />
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white" />
</shape>
</item>
</layer-list>
Во время события onFocus раскрывающийся список загружается должным образом. Но после вардера, когда я нажимаю на autocompletetextview, когда раскрывающийся список виден, раскрывающийся список перезагружается, но макетполностью запутан, как будто он загружает какой-то выпадающий элемент по умолчанию вместо того, который он разработал.Как я могу это исправить.Я был бы очень признателен за любую помощь.
Это DropDown, я ожидаю, что появляется на FocusEvent
Это то, что происходит, когда я нажимаю на вид, когда выпадающий список виден