Спиннер внутри пользовательского ListView зависает при возврате из другого действия - PullRequest
0 голосов
/ 28 марта 2012

Привет всем, вот моя проблема. Список моего приложения (который находится внутри виджета со вкладками) содержит различные типы строк. У меня было много проблем с настройкой, и вот еще 1. Пожалуйста, посмотрите здесь для кода, который в основном остается тем же. Я использую другое действие (настраиваемый проводник ES-файлов), которое является диалоговым окном обозревателя файлов, чтобы открыть файл. Данные из файла отправляются в просмотр списка. Когда он показывает список, и я нажимаю на спиннер, экран темнеет и зависает. Если я нажимаю кнопку «Назад», затемнение исчезает, просмотр списка становится активным, но счетчик по-прежнему отсутствует. Единственный выход - если я переключусь на другой виджет вкладки и вернусь снова (есть 2 отдельных), спиннер снова заработает.

Я должен сказать, что спиннер работает просто отлично, если я не загружаю файлы из другой активности. Таким образом, я предполагаю, что другими словами, есть проблема фокуса или чего-то еще при переключении и убийстве действий.

Я надеюсь, вы можете помочь.

EDIT после еще нескольких попыток, иногда после загрузки файла из браузера, он возвращается к черному экрану, где вид списка есть, но не виден. Например, вы можете нажать на него, и редактор откроется.

1 Ответ

0 голосов
/ 29 марта 2012

Привет, хорошо, снова потребовались годы, но здесь была проблема. пользовательский просмотр списка

this.setDescendantFocusability(FOCUS_BEFORE_DESCENDANTS);

набор

так что все, что мне нужно было сделать, это установить

holder.techniquespinner.setDescendantFocusability(parent.FOCUS_BEFORE_DESCENDANTS); 

для прядильщика и вуаля; Я не пробовал, но, вероятно, он должен войти в XML-файл.

Спасибо всем, кто посмотрел.

EDIT Дерьмо, с которым я говорил в ближайшее время. Это все еще не работает. Внутри флиппера есть 2 вкладки. При возврате из браузера на вкладку, на которой он оставлен БЕЗ переворачивания флиппера, он работает. Переверните один раз, снова и снова, чтобы браузер не работал. Я даже не уверен, какой код для публикации. Это довольно сложно.

ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ

Вот как я это исправил.

flipper.showNext();

и затем обратно.

Это как-то обновляет вид, возвращает его к фокусу и снова может использоваться.

Это не красиво, но работает.

...