diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a555236..b7b09a4 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,6 +20,7 @@
+
diff --git a/app/src/main/java/com/zy/demo/ApiActivity.kt b/app/src/main/java/com/zy/demo/ApiActivity.kt
index b6b9a02..42503ce 100644
--- a/app/src/main/java/com/zy/demo/ApiActivity.kt
+++ b/app/src/main/java/com/zy/demo/ApiActivity.kt
@@ -33,8 +33,8 @@ class ApiActivity : BaseActivity() {
multiState.show()
}
+ val lottieOtherState = LottieOtherState()
viewBinding.btnLottie2.setOnClickListener {
- val lottieOtherState = LottieOtherState()
lottieOtherState.retry = {
Toast.makeText(this, "retry...", Toast.LENGTH_SHORT).show()
}
diff --git a/app/src/main/java/com/zy/demo/MainActivity.kt b/app/src/main/java/com/zy/demo/MainActivity.kt
index 9bdbce2..62bce8c 100644
--- a/app/src/main/java/com/zy/demo/MainActivity.kt
+++ b/app/src/main/java/com/zy/demo/MainActivity.kt
@@ -44,5 +44,8 @@ class MainActivity : BaseActivity() {
startActivity()
}
+ viewBinding.smartRefreshLayout2.setOnClickListener {
+ startActivity()
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/zy/demo/MultiStateFragment.kt b/app/src/main/java/com/zy/demo/MultiStateFragment.kt
index 1d7b493..a62b09b 100644
--- a/app/src/main/java/com/zy/demo/MultiStateFragment.kt
+++ b/app/src/main/java/com/zy/demo/MultiStateFragment.kt
@@ -6,7 +6,6 @@ import android.view.View
import android.view.ViewGroup
import com.zy.demo.base.BaseFragment
import com.zy.demo.base.mockError
-import com.zy.demo.base.mockSuccess
import com.zy.demo.databinding.FragmentMultiStateBinding
import com.zy.multistatepage.MultiStateContainer
import com.zy.multistatepage.bindMultiState
@@ -26,7 +25,6 @@ class MultiStateFragment : BaseFragment() {
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
- inflater.inflate(R.layout.activity_api, container, false)
val root = super.onCreateView(inflater, container, savedInstanceState)
multiState = root!!.bindMultiState()
multiState.show()
diff --git a/app/src/main/java/com/zy/demo/MultiViewActivity.kt b/app/src/main/java/com/zy/demo/MultiViewActivity.kt
index 3496e3a..de6502a 100644
--- a/app/src/main/java/com/zy/demo/MultiViewActivity.kt
+++ b/app/src/main/java/com/zy/demo/MultiViewActivity.kt
@@ -3,6 +3,7 @@ package com.zy.demo
import com.zy.demo.base.BaseActivity
import com.zy.demo.base.mockError
import com.zy.demo.base.mockSuccess
+import com.zy.demo.base.showLoading
import com.zy.demo.databinding.ActivityMultiViewBinding
import com.zy.multistatepage.bindMultiState
diff --git a/app/src/main/java/com/zy/demo/RefreshStateActivity.kt b/app/src/main/java/com/zy/demo/RefreshStateActivity.kt
index f5b86a6..52c868d 100644
--- a/app/src/main/java/com/zy/demo/RefreshStateActivity.kt
+++ b/app/src/main/java/com/zy/demo/RefreshStateActivity.kt
@@ -12,18 +12,18 @@ class RefreshStateActivity : BaseActivity() {
private var count = 0
override fun initPage() {
val multiStateActivityRoot = bindMultiState()
+
lifecycleScope.launchWhenCreated {
multiStateActivityRoot.show()
delay(2000)
- val errorState = ErrorState().apply {
- retry {
- lifecycleScope.launchWhenCreated {
- multiStateActivityRoot.show()
- delay(2000)
- multiStateActivityRoot.show(this@apply) {
- it.setErrorMsg("鸡你太美 ${++count}")
- it.setErrorIcon(R.mipmap.jntm)
- }
+ val errorState = ErrorState()
+ errorState.retry {
+ lifecycleScope.launchWhenCreated {
+ multiStateActivityRoot.show()
+ delay(2000)
+ multiStateActivityRoot.show(errorState) {
+ it.setErrorMsg("鸡你太美 ${++count}")
+ it.setErrorIcon(R.mipmap.jntm)
}
}
}
diff --git a/app/src/main/java/com/zy/demo/SmartRefreshLayoutActivity.kt b/app/src/main/java/com/zy/demo/SmartRefreshLayoutActivity.kt
index f58e717..b48756c 100644
--- a/app/src/main/java/com/zy/demo/SmartRefreshLayoutActivity.kt
+++ b/app/src/main/java/com/zy/demo/SmartRefreshLayoutActivity.kt
@@ -74,7 +74,7 @@ class SmartRefreshLayoutActivity : BaseActivity() {
+ class RlvAdapter : RecyclerView.Adapter() {
var data = mutableListOf()
diff --git a/app/src/main/java/com/zy/demo/SmartRefreshLayoutActivity2.kt b/app/src/main/java/com/zy/demo/SmartRefreshLayoutActivity2.kt
new file mode 100644
index 0000000..869cf73
--- /dev/null
+++ b/app/src/main/java/com/zy/demo/SmartRefreshLayoutActivity2.kt
@@ -0,0 +1,74 @@
+package com.zy.demo
+
+import androidx.appcompat.app.AppCompatActivity
+import androidx.lifecycle.lifecycleScope
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.zy.demo.base.*
+import com.zy.demo.databinding.ActivitySmartRefreshLayout2Binding
+import com.zy.demo.databinding.ActivitySmartRefreshLayoutBinding
+import com.zy.multistatepage.bindMultiState
+import kotlinx.coroutines.delay
+
+/**
+ * @ProjectName: MultiStatePage
+ * @Author: jojo
+ * @Email: 17635289240@163.com
+ * @CreateDate: 2021/8/2 5:48 下午
+ * @Description: TODO
+ */
+class SmartRefreshLayoutActivity2 : BaseActivity() {
+ private val rlvAdapter = SmartRefreshLayoutActivity.RlvAdapter()
+ private val container by lazy { viewBinding.recyclerView.bindMultiState() }
+
+ override fun initPage() {
+ viewBinding.recyclerView.layoutManager = LinearLayoutManager(this)
+ viewBinding.recyclerView.adapter = rlvAdapter
+ loadData()
+
+
+ viewBinding.smartRefreshLayout.setEnableLoadMoreWhenContentNotFull(false)
+
+ viewBinding.smartRefreshLayout.setOnRefreshListener {
+ rlvAdapter.refreshData(getData(50))
+ container.showSuccess()
+ it.finishRefresh()
+ }
+ viewBinding.smartRefreshLayout.setOnLoadMoreListener {
+ rlvAdapter.addData(getData(30))
+ container.showSuccess()
+ it.finishLoadMore()
+ }
+
+ viewBinding.btnContent.setOnClickListener {
+ rlvAdapter.refreshData(getData(50))
+ container.showSuccess()
+ }
+ viewBinding.btnError.setOnClickListener {
+ rlvAdapter.clearData()
+ container.showError() {
+ it.retry { loadData() }
+ }
+ }
+ viewBinding.btnEmpty.setOnClickListener {
+ rlvAdapter.clearData()
+ container.showEmpty()
+ }
+ }
+
+ private fun loadData() {
+ lifecycleScope.launchWhenResumed {
+ container.showLoading()
+ delay(3000)
+ rlvAdapter.refreshData(getData(50))
+ container.showSuccess()
+ }
+ }
+
+ private fun getData(count: Int): MutableList {
+ val data = mutableListOf()
+ for (i in 0 until count) {
+ data.add("data")
+ }
+ return data
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zy/demo/base/Fun.kt b/app/src/main/java/com/zy/demo/base/Fun.kt
index 184136c..5d95838 100644
--- a/app/src/main/java/com/zy/demo/base/Fun.kt
+++ b/app/src/main/java/com/zy/demo/base/Fun.kt
@@ -89,4 +89,4 @@ fun MultiStateContainer.showLoading(callBack: () -> Unit = {}) {
inline fun Activity.startActivity() {
startActivity(Intent(this, T::class.java))
-}
\ No newline at end of file
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 0445705..dd6d6be 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -68,6 +68,12 @@
android:layout_height="wrap_content"
android:text="结合SmartRefreshLayout使用" />
+
+