diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt index cc542b86e..4b92664e4 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt @@ -84,6 +84,12 @@ abstract class BaseNodeAdapter(data: MutableList? = null) super.setNewData(flatData(data ?: arrayListOf())) } + /** + * 如果需要对某节点下的子节点进行数据操作,请使用[nodeAddData]! + * + * @param position Int 整个 data 的 index + * @param data BaseNode + */ override fun addData(position: Int, data: BaseNode) { addData(position, arrayListOf(data)) } @@ -102,12 +108,22 @@ abstract class BaseNodeAdapter(data: MutableList? = null) super.addData(nodes) } + /** + * 如果需要对某节点下的子节点进行数据操作,请使用[nodeRemoveData]! + * + * @param position Int 整个 data 的 index + */ override fun remove(position: Int) { val removeCount = removeAt(position) notifyItemRangeRemoved(position + getHeaderLayoutCount(), removeCount) compatibilityDataSizeChanged(0) } + /** + * 如果需要对某节点下的子节点进行数据操作,请使用[nodeSetData]! + * @param index Int + * @param data BaseNode + */ override fun setData(index: Int, data: BaseNode) { // 先移除,再添加 val removeCount = removeAt(index) diff --git a/library/src/main/java/com/chad/library/adapter/base/entity/node/BaseNode.kt b/library/src/main/java/com/chad/library/adapter/base/entity/node/BaseNode.kt index 9bb13c61f..33b529a56 100644 --- a/library/src/main/java/com/chad/library/adapter/base/entity/node/BaseNode.kt +++ b/library/src/main/java/com/chad/library/adapter/base/entity/node/BaseNode.kt @@ -4,6 +4,8 @@ abstract class BaseNode { /** * 重写此方法,获取子节点。如果没有子节点,返回 null 或者 空数组 + * + * 如果返回 null,则无法对子节点的数据进行新增和删除等操作 */ abstract val childNode: MutableList?