# cymchad/baserecyclerviewadapterhelper architecture

> Architecture diagram of the GitHub repository cymchad/baserecyclerviewadapterhelper, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cymchad/baserecyclerviewadapterhelper
- Repository: https://github.com/cymchad/baserecyclerviewadapterhelper

## Overview

BRVAH is an Android RecyclerView adapter library, accompanied here by an example app. The user-facing path is to open a demo and interact with a list; the library supplies adapter behavior and optional composition, loading, and gesture features. The demos cover paging, drag/swipe, diffing, headers/footers, and other list patterns. Edges are limited to relationships visible in the provided excerpts, SOURCE INDEX references, or README; many unsampled demo capabilities are shown without inferred call paths.

Main entry points: [`app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe`](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe) (Drag swipe demos), [`app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity`](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity) (List demos), [`library/src/main/java/com/chad/library/adapter4/dragswipe/QuickDragAndSwipe.kt`](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/dragswipe/QuickDragAndSwipe.kt) (Drag swipe engine), [`library/src/main/java/com/chad/library/adapter4/BaseQuickAdapter.kt`](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/BaseQuickAdapter.kt) (Base adapter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_demo["Example app"]
  node_welcome["Demo entry"]
  node_demo_lists["List demos"]
  node_demo_data["Sample data<br/>[DataServer.kt]"]
  node_demo_models["Demo entities"]
  node_demo_load["Paging demos"]
  node_demo_drag["Drag swipe demos"]
  node_demo_diff["Diff demo"]
  node_demo_headers["Header footer demos"]
  node_demo_other["Other list demos"]
end

subgraph group_adapter["Adapter core"]
  node_base_adapter["Base adapter"]
  node_special_adapters["Adapter variants"]
  node_view_holder["View holder<br/>[QuickViewHolder.kt]"]
  node_animations["Item animations"]
end

subgraph group_composition["List composition"]
  node_adapter_helper["Adapter helper"]
  node_load_state["Load states<br/>[LoadState.kt]"]
  node_load_adapter["Trailing loading"]
  node_fullspan["Full span types"]
end

subgraph group_interactions["List interactions"]
  node_drag_swipe["Drag swipe engine"]
  node_drag_callback["Move callback"]
  node_drag_listener["Drag listener"]
  node_swipe_listener["Swipe listener"]
end

node_user(("App user"))

node_user -->|"opens demo"| node_welcome
node_welcome -.->|"navigates to"| node_demo_lists
node_demo_lists -.->|"uses sample data"| node_demo_data
node_demo_lists -.->|"uses entities"| node_demo_models
node_demo_load -->|"composes adapters"| node_adapter_helper
node_demo_load -->|"sets load state"| node_load_state
node_demo_load -->|"configures loading"| node_load_adapter
node_demo_drag -->|"attaches gesture"| node_drag_swipe
node_demo_drag -->|"sets callback"| node_drag_callback
node_demo_drag -->|"sets listener"| node_drag_listener
node_demo_drag -->|"sets listener"| node_swipe_listener
node_drag_swipe -->|"moves data"| node_drag_callback
node_drag_swipe -->|"notifies drag"| node_drag_listener
node_drag_swipe -->|"notifies swipe"| node_swipe_listener
node_demo_diff -->|"demonstrates diffing"| node_special_adapters
node_demo_headers -->|"composes adapters"| node_adapter_helper
node_base_adapter -.->|"binds views"| node_view_holder
node_adapter_helper -->|"includes trailing adapter"| node_load_adapter
node_load_adapter -->|"uses states"| node_load_state
node_special_adapters -.->|"extends adapter base"| node_base_adapter
node_demo_other -.->|"demonstrates list adapter"| node_base_adapter
node_demo_lists -.->|"uses adapter library"| node_base_adapter

click node_welcome "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/WelcomeActivity.java"
click node_demo_lists "https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity"
click node_demo_data "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/data/DataServer.kt"
click node_demo_models "https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/entity"
click node_demo_load "https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore"
click node_demo_drag "https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe"
click node_demo_diff "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/differ/DifferActivity.java"
click node_demo_headers "https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter"
click node_demo_other "https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity"
click node_base_adapter "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/BaseQuickAdapter.kt"
click node_special_adapters "https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/library/src/main/java/com/chad/library/adapter4"
click node_view_holder "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/viewholder/QuickViewHolder.kt"
click node_animations "https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/library/src/main/java/com/chad/library/adapter4/animation"
click node_adapter_helper "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/QuickAdapterHelper.kt"
click node_load_state "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/loadState/LoadState.kt"
click node_load_adapter "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/loadState/trailing/TrailingLoadStateAdapter.kt"
click node_fullspan "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/fullspan/FullSpanAdapterType.kt"
click node_drag_swipe "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/dragswipe/QuickDragAndSwipe.kt"
click node_drag_callback "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/dragswipe/listener/DragAndSwipeDataCallback.kt"
click node_drag_listener "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/dragswipe/listener/OnItemDragListener.java"
click node_swipe_listener "https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/dragswipe/listener/OnItemSwipeListener.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_welcome,node_demo_lists,node_demo_data,node_demo_models,node_demo_load,node_demo_drag,node_demo_diff,node_demo_headers,node_demo_other,node_user toneBlue
class node_base_adapter,node_special_adapters,node_view_holder,node_animations toneAmber
class node_adapter_helper,node_load_state,node_load_adapter,node_fullspan toneMint
class node_drag_swipe,node_drag_callback,node_drag_listener,node_swipe_listener toneRose
```

## Components

### Example app

- [Demo entry](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/WelcomeActivity.java): `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/WelcomeActivity.java`
- [List demos](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity): `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity`
- [Sample data](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/data/DataServer.kt): `app/src/main/java/com/chad/baserecyclerviewadapterhelper/data/DataServer.kt`
- [Demo entities](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/entity): `app/src/main/java/com/chad/baserecyclerviewadapterhelper/entity`
- [Paging demos](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore): `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore`
- [Drag swipe demos](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe): `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe`
- [Diff demo](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/differ/DifferActivity.java): `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/differ/DifferActivity.java`
- [Header footer demos](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter): `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter`
- [Other list demos](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity): `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity`

### Adapter core

- [Base adapter](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/BaseQuickAdapter.kt): `library/src/main/java/com/chad/library/adapter4/BaseQuickAdapter.kt`
- [Adapter variants](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/library/src/main/java/com/chad/library/adapter4): `library/src/main/java/com/chad/library/adapter4`
- [View holder](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/viewholder/QuickViewHolder.kt): `library/src/main/java/com/chad/library/adapter4/viewholder/QuickViewHolder.kt`
- [Item animations](https://github.com/cymchad/baserecyclerviewadapterhelper/tree/master/library/src/main/java/com/chad/library/adapter4/animation): `library/src/main/java/com/chad/library/adapter4/animation`

### List composition

- [Adapter helper](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/QuickAdapterHelper.kt): `library/src/main/java/com/chad/library/adapter4/QuickAdapterHelper.kt`
- [Load states](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/loadState/LoadState.kt): `library/src/main/java/com/chad/library/adapter4/loadState/LoadState.kt`
- [Trailing loading](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/loadState/trailing/TrailingLoadStateAdapter.kt): `library/src/main/java/com/chad/library/adapter4/loadState/trailing/TrailingLoadStateAdapter.kt`
- [Full span types](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/fullspan/FullSpanAdapterType.kt): `library/src/main/java/com/chad/library/adapter4/fullspan/FullSpanAdapterType.kt`

### List interactions

- [Drag swipe engine](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/dragswipe/QuickDragAndSwipe.kt): `library/src/main/java/com/chad/library/adapter4/dragswipe/QuickDragAndSwipe.kt`
- [Move callback](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/dragswipe/listener/DragAndSwipeDataCallback.kt): `library/src/main/java/com/chad/library/adapter4/dragswipe/listener/DragAndSwipeDataCallback.kt`
- [Drag listener](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/dragswipe/listener/OnItemDragListener.java): `library/src/main/java/com/chad/library/adapter4/dragswipe/listener/OnItemDragListener.java`
- [Swipe listener](https://github.com/cymchad/baserecyclerviewadapterhelper/blob/master/library/src/main/java/com/chad/library/adapter4/dragswipe/listener/OnItemSwipeListener.java): `library/src/main/java/com/chad/library/adapter4/dragswipe/listener/OnItemSwipeListener.java`

### Other components

- **App user**

## Connections

- App user → Demo entry: opens demo
- Demo entry → List demos: navigates to
- List demos → Sample data: uses sample data (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/DragAndSwipeDifferActivity.kt`)
- List demos → Demo entities: uses entities (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore/NoAutoAutoLoadMoreRefreshUseActivity.kt`)
- Paging demos → Adapter helper: composes adapters (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore/NoAutoAutoLoadMoreRefreshUseActivity.kt`)
- Paging demos → Load states: sets load state (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore/NoAutoAutoLoadMoreRefreshUseActivity.kt`)
- Paging demos → Trailing loading: configures loading (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/loadmore/NoAutoAutoLoadMoreRefreshUseActivity.kt`)
- Drag swipe demos → Drag swipe engine: attaches gesture (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/HeaderDragAndSwipeActivity.kt`)
- Drag swipe demos → Move callback: sets callback (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/DragAndSwipeDifferActivity.kt`)
- Drag swipe demos → Drag listener: sets listener (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/DefaultDragAndSwipeActivity.kt`)
- Drag swipe demos → Swipe listener: sets listener (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/dragswipe/DefaultDragAndSwipeActivity.kt`)
- Drag swipe engine → Move callback: moves data (evidence: `library/src/main/java/com/chad/library/adapter4/dragswipe/QuickDragAndSwipe.kt`)
- Drag swipe engine → Drag listener: notifies drag (evidence: `library/src/main/java/com/chad/library/adapter4/dragswipe/QuickDragAndSwipe.kt`)
- Drag swipe engine → Swipe listener: notifies swipe (evidence: `library/src/main/java/com/chad/library/adapter4/dragswipe/QuickDragAndSwipe.kt`)
- Diff demo → Adapter variants: demonstrates diffing (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/differ/DifferActivity.java`)
- Header footer demos → Adapter helper: composes adapters (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/headerfooter/HeaderAndFooterUseActivity.kt`)
- Base adapter → View holder: binds views
- Adapter helper → Trailing loading: includes trailing adapter (evidence: `library/src/main/java/com/chad/library/adapter4/QuickAdapterHelper.kt`)
- Trailing loading → Load states: uses states (evidence: `library/src/main/java/com/chad/library/adapter4/loadState/trailing/TrailingLoadStateAdapter.kt`)
- Adapter variants → Base adapter: extends adapter base (evidence: `library/src/main/java/com/chad/library/adapter4/layoutmanager/QuickGridLayoutManager.kt`)
- Other list demos → Base adapter: demonstrates list adapter (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/HomeActivity.kt`)
- List demos → Base adapter: uses adapter library (evidence: `app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/home/HomeActivity.kt`)
