/ / Как да деактивирате автоматичното отваряне на падащия списък в AutoCompleteTextView, когато notifyDataSetChanged () се обади? - android, падащо меню, опресняване, autocompletetextview

Как да деактивирате автоматичното отваряне на падащото меню в AutoCompleteTextView при извикване на notifyDataSetChanged ()? - Android, падащо меню, опресняване, автоматично допълване на текста

Ето моя проблем:

В моето приложение за Android използвам AutoCompleteTextView иОбновете списъка с елементи за всеки 5 секунди. Обновяването работи, когато се обадя на notifyDataSetChanged (). Но когато пиша тук нещо и това ще ми даде списък на съвпадащи елементи и след това го затворя ръчно, когато друга нишка опреснява списъка и извиква падащия списък notifyDataSetChanged () се показва автоматично (дори ако го затворих преди). И наистина е досадно, защото ако списъкът е дълъг, той отнема цял екран и след затварянето му ще се появи в още 5 секунди. Опитах се да отхвърля () веднага след извикването на notifyDataSetChanged (), но няма никакъв ефект. Изглежда, че падащото меню се показва с малко закъснение. Това също не е добър начин да се поправи, защото ако потребителят не е затворен списъкът ще се затвори след опресняване. Също така се опита да се фокусира далеч - все още няма ефект.

Така че имам нужда от метод за: актуализирайте списъка с моите елементи (чрез notifyDataSetChanged ()), без да показва автоматично падащия списък, но ако вече е показано, не го затваряйте.

Надявам се да помогнете,

наздраве


Накрая го направих. Публикувам тук решение, може би някой ще използва това.

За да проверите дали падащото меню е видимо:

final boolean isVisible = autocomplete.isPopupShowing();

След това извикайте notifyDataSetChanged (),

И накрая:

new Handler().post(new Runnable(){

@Override
public void run() {
if(!isVisible){
autocomplete.dismissDropDown();
}
}

});

Това работи перфектно.

Отговори:

0 за отговор № 1

Имам и този проблем, мисля, че изглежда да е бъг, аз реших това по следния начин

Преди всичко задайте свойството за фокусиране с AutoCompleteTextView на false.

Второ променете фокусиращото свойство на AutoCompleteTextView на true в onTouch събитие на този изглед.

Когато докосвате товаAutoCompleteTextView, трябва да промените фокусиращото свойство, за да е истинско, иначе да го фокусирате в false. Така че падащият списък никога не се появява, когато изгледът е в състояние, което не може да се отвори.

Тя показва падащия списък автоматично, само когато изгледът е във фокусно състояние, което е досадно за потребителя, в противен случай работи добре.