Как полностью заменить listView/GridView с помощью RecyclerView?
Я заметил, что новый класс RecyclerView, даже если он делает вещи немного чище, не обладает большой функциональностью, с которой я знаком:
- но это можно решить, посмотрев этот пост или этот
- "footerDividersEnabled"
- "headerDividersEnabled"
- "listSelector", но, может быть, я должен просто установить его для представления?
- "fastScrollEnabled"
- "smoothScrollbar"
- "textFilterEnabled"
- Я также попытался выяснить, есть ли новый способ использования нового класса с фильтрацией (как это делается с ListView путем реализации Filterable). Я не мог узнать, есть ли такая вещь.
- "tools: listitem", чтобы показать элементы в дизайнере пользовательского интерфейса.
Это то, что я использую, но, возможно, есть и другие, которых я пропустил.
Есть ли какой-либо учебник или какие-то рекомендации по замене каждой из этих вещей?
Ответы
Ответ 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.