Новая реализация Android TreeView

Новая реализация Android TreeView

12 апреля 2022 г.

Привет всем, в начале 2022 года я хочу создать дерево файлов, как вы видите в любом редакторе кода или IDE, которое представляет структуры проекта, и вы можете выполнять некоторые операции, такие как расширение или свертывание каталогов, и я искал множество реализаций Tree View. в GitHub, но я обнаружил, что некоторые из них не поддерживаются в течение многих лет, а также пример проекта не работает в новых версиях Android Studio, другие реализации создают пользовательские представления с нуля и рисуют дерево, но они не работали правильно с большое количество узлов и другие ограничения.


Поэтому я начал создавать список, который содержит набор функций из всех них, а также набор функций, которые были запрошены в проблемах GitHub, чтобы черпать из них вдохновение, чтобы я мог создать общую и полезную реализацию, которую можно было бы легко использовать. настраивайте и расширяйте всеми, и в результате этого я хочу представить эту новую библиотеку [TreeView] (https://github.com/amrdeveloper/treeview).



Основная цель состоит в том, чтобы сделать TreeView простым в использовании, настраивать и расширять практически без ограничений и быть в курсе новых версий Android, так что вы можете сделать с [TreeView] (https://github.com/amrdeveloper/treeview)?


В TreeView не было пользовательского представления, все, что вам нужно, это обычный RecyclerView, чтобы вы могли получить преимущества повторного использования и производительности RecyclerView, а также вы можете получить 2D-прокрутку без какого-либо пользовательского макета, подумайте об этом так, как будто вы хотите сделать свой обычный RecyclerView иметь 2D прокрутку,


TreeView имеет собственный адаптер RecyclerView с готовыми к использованию прослушивателями щелчков и длинных щелчков.


мы можем добавить больше в будущем, поэтому каждому TreeNode не нужно было иметь ссылку для своих слушателей.



У вас может быть любое количество корней, а также любое количество макетов элементов списка без необходимости расширять и переопределять адаптер по умолчанию, я реализовал с использованием шаблона проектирования Factory, поэтому вам нужно передать TreeViewHolderFactory в конструктор адаптера, который отображает каждый список макет элемента с его ViewHolder, поэтому все, что вам нужно, это создать View Holder для этого макета и добавить его в фабрику.


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



Все подробности об установке, использовании и расширении написаны на веб-сайте TreeView с примерами, и если у вас возникнут какие-либо проблемы или возникнут вопросы, не стесняйтесь создавать новую проблему на [Github] (https://github). .com/amrdeveloper/treeview), чтобы мы могли быстро вам помочь.


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


TreeView Github: AmrDeveloper/TreeView


Веб-сайт TreeView: Github.io/TreeView


Вы можете найти меня на: GitHub, LinkedIn и Твиттер.


Наслаждайтесь программированием 😋.


Также опубликовано [Здесь] (https://itnext.io/a-new-android-treeview-implementation-9b27ca9854af)



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE