diff --git a/library/src/main/java/com/chad/library/adapter4/BaseQuickAdapter.kt b/library/src/main/java/com/chad/library/adapter4/BaseQuickAdapter.kt index 4a2456bb1..8a04b6bb8 100644 --- a/library/src/main/java/com/chad/library/adapter4/BaseQuickAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter4/BaseQuickAdapter.kt @@ -242,6 +242,7 @@ abstract class BaseQuickAdapter( final override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { if (holder is StateLayoutVH) { + holder.changeStateView(stateView) return } @@ -822,7 +823,7 @@ abstract class BaseQuickAdapter( companion object { - const val EMPTY_VIEW = 0x01000555 + val EMPTY_VIEW = R.id.BaseQuickAdapter_empty_view internal const val EMPTY_PAYLOAD = 0 } diff --git a/library/src/main/java/com/chad/library/adapter4/viewholder/StateLayoutVH.kt b/library/src/main/java/com/chad/library/adapter4/viewholder/StateLayoutVH.kt index 4c39cf920..baa66f314 100644 --- a/library/src/main/java/com/chad/library/adapter4/viewholder/StateLayoutVH.kt +++ b/library/src/main/java/com/chad/library/adapter4/viewholder/StateLayoutVH.kt @@ -14,7 +14,7 @@ import com.chad.library.adapter4.fullspan.FullSpanAdapterType * @property stateLayout * @constructor Create empty Empty layout v h */ -internal class StateLayoutVH constructor( +internal class StateLayoutVH( parent: ViewGroup, stateView: View?, private val stateLayout: FrameLayout = FrameLayout(parent.context).apply { @@ -37,6 +37,14 @@ internal class StateLayoutVH constructor( return } + if (rootView.childCount == 1) { + val old = rootView.getChildAt(0) + if (old == stateView) { + // 如果是同一个view,不进行操作 + return + } + } + stateView.parent.run { if (this is ViewGroup) { this.removeView(stateView) diff --git a/library/src/main/res/values/ids.xml b/library/src/main/res/values/ids.xml index b273000ab..6de5128cc 100644 --- a/library/src/main/res/values/ids.xml +++ b/library/src/main/res/values/ids.xml @@ -6,4 +6,6 @@ + + \ No newline at end of file