Подтвердить что ты не робот

Как полностью заменить listView/GridView с помощью RecyclerView?

Я заметил, что новый класс RecyclerView, даже если он делает вещи немного чище, не обладает большой функциональностью, с которой я знаком:

  • но это можно решить, посмотрев этот пост или этот
  • "footerDividersEnabled"
  • "headerDividersEnabled"
  • "listSelector", но, может быть, я должен просто установить его для представления?
  • "fastScrollEnabled"
  • "smoothScrollbar"
  • "textFilterEnabled"
  • Я также попытался выяснить, есть ли новый способ использования нового класса с фильтрацией (как это делается с ListView путем реализации Filterable). Я не мог узнать, есть ли такая вещь.
  • "tools: listitem", чтобы показать элементы в дизайнере пользовательского интерфейса.

Это то, что я использую, но, возможно, есть и другие, которых я пропустил.

Есть ли какой-либо учебник или какие-то рекомендации по замене каждой из этих вещей?

4b9b3361

Ответ 1

ОК, я думаю, что нашел некоторые решения для того, о чем я писал:

  • разделители - ссылки, которые я дал, возможно, помогут ( здесь, здесь и здесь).
  • "footerDividersEnabled" - возможно, как # 1, но даже если у вас его нет, вы всегда можете добавить разделитель в макет нижнего колонтитула.
  • "headerDividersEnabled" - то же, что и # 2.
  • "listSelector" - должно быть сделано к представлениям элементов.
  • "fastScrollEnabled" - для этого нет решения, кроме эта библиотека Я нашел, который был ответом на мой пост здесь.
  • "smoothScrollbar" - должен быть запрос функции для # 5. Я думаю, что это уже гладко, но я не уверен.
  • "textFilterEnabled" - к сожалению, вам нужно самому справиться с этим. создать пул потоков размером 1 или управлять собственным потоком (или использовать AsyncTask, если работа относительно короткая) и позволить ему выполнять фильтрацию для вас.
  • Фильтровать - то же, что и # 7
  • "tools: listitem" - недоступно, но я думаю, что вы можете перейти от RecyclerView и добавить его. Однако вам придется поработать, так как RecyclerView не знает, как развернуть представления.

Ответ 2

Нет учебников, о которых я знаю, но источники для ListView являются общедоступными! Нет лучшего способа узнать, чем это... Например: Недавно я реализовал фильтрацию, как это делает ListView, и это работает как шарм. Кроме того, если вы это сделаете хорошо, вам нужно сделать это только один раз и можете повторно применять его везде!

Ответ 3

Я бы порекомендовал вам взглянуть на некоторые библиотеки для RecyclerView. Вы можете найти много библиотеки в https://android-arsenal.com/.

Также вы можете реализовать свои собственные функции в RecyclerView и Adapter for RecyclerView. Просто увеличьте RecyclerView и постройте на нем.

Я рекомендую вам прочитать исходный код RecyclerView в https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java.