Как обрабатывать большие наборы опций в Android?

Я создаю приложение, которому нужен контроллер ввода, который помогает пользователям выбирать из диапазона возможных значений, обычно насчитывающих от 100 до 150. В то же время пользователь должен иметь возможность свободно изменять конечное значение, если доступные варианты не подходят их потребности. В нашей версии для iOS мы делаем это с помощью простого средства выбора, которое обновляет UITextField, как показано ниже:

введите здесь описание изображения

Пользователь может прокрутить до предпочтительного значения в средстве выбора, а затем изменить свой ввод через поле UITextField. Это хорошо работает в iOS, потому что средство выбора можно прокручивать очень быстро. Кроме того, когда отображаются клавиатура, средство выбора и UITextField, ни одно из них не мешает другому.

Я уже несколько дней пытаюсь сделать что-то подобное на Android, но мне не повезло. Начнем с того, что стандартный NumberPicker очень медленный и плохо справляется с прокруткой набора значений. Кроме того, при выборе EditText, похоже, нет способа надежно гарантировать, что все ключевые элементы дерева останутся видимыми на экране.

Вероятно, это несколько открытый вопрос, но я действительно просто ищу идеи о том, как эту проблему можно решить в Android, не оказывая негативного влияния на удобство использования приложения.


person spacitron    schedule 09.03.2016    source источник


Ответы (1)


Вы смотрели на AutoCompleteTextView ? Пользователь начинает вводить первые символы, и в раскрывающемся списке отображаются соответствующие элементы. Я использую его для 36 тыс. записей, и он отлично работает на приличных телефонах.

В противном случае здесь и там должны быть изготовленные на заказ компоненты, которые могут стать основой для обеспечения ожидаемого пользовательского опыта.

Любой правильно настроенный список редактирования текста должен прокручиваться достаточно быстро.

Рассматривали ли вы другие приложения для Android, сталкивающиеся с той же проблемой взаимодействия с пользователем, чтобы изучить существующие решения?

person Poutrathor    schedule 09.03.2016
comment
Да, именно так это реализовано в настоящее время. Однако проблема в том, что мы хотим предоставить пользователю все доступные варианты. Поэтому я изменил AutoCompleteTextView, чтобы повторно отправлять все параметры, как только он выбран, и результаты не очень хороши. На этот раз невозможно прокрутить до текущего выбора, также он имеет тенденцию скрывать EditText, когда отображаются и клавиатура, и раскрывающийся список. - person spacitron; 10.03.2016
comment
да, я понимаю, что вы имеете в виду, AutocompleteTextView может быть грязным. У вас есть способы более точного управления выпадающими окнами, но этого может быть недостаточно. а как насчет реализации списка: отображается несколько строк, свобода в дизайне... - person Poutrathor; 10.03.2016