Parcourir la source

1.优化下拉刷新页面UI

王鹏鹏 il y a 2 ans
Parent
commit
d24358fd84

+ 22 - 14
workbenches/src/main/java/com/yingyang/workbenches/freetraining/FreeTrainActivity.kt

@@ -33,6 +33,7 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
     /**
      * 自由训练游戏列表
      */
+    private var gridLayoutManager: GridLayoutManager? = null
     private var freeTrainList = mutableListOf<Record>()
     private val freeTrainListAdapter by lazy { FreeTrainAdapter() }
 
@@ -52,19 +53,18 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
                 binding.tvTitle.text = bean.dictLabel
                 type = bean.dictValue
                 freeTrainListAdapter.setType(type)
-                binding {
-                    rvTrain.show(true)
-                    emptyLayout.show(false)
-                }
-                loadData(true)
+                freeTrainListAdapter.clearData()
+                freeTrainListAdapter.showEmptyView = false
+                loadData(true, true)
             }
             //自由训练游戏列表
-            rvTrain.layoutManager = GridLayoutManager(this@FreeTrainActivity, 4)
+            gridLayoutManager = GridLayoutManager(this@FreeTrainActivity, 4)
+            rvTrain.layoutManager = gridLayoutManager
             rvTrain.adapter = freeTrainListAdapter
             freeTrainListAdapter.setType(type)
             freeTrainListAdapter.onGameClickListener = { bean ->
                 val str =
-                    bean.gameUrl + "?gameCode=" + bean.gameCode + "&playClass=" + bean.playClass +
+                    bean.gameUrl + "?gameCode=" + bean.gameCode + "&isFull=true&isSound=true&playClass=" + bean.playClass +
                             "&userToken=" + User.getToken()
                 JumpUtil.jumpActivityWithUrl(RouterUrlCommon.WEB_VIEW_INTERACTION_JS, str, mContext)
             }
@@ -78,11 +78,13 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
             }
 
             freeTrainSwipe.setOnRefreshListener {
-                loadData(true)
+                freeTrainListAdapter.showEmptyView = false
+                freeTrainListAdapter.clearData()
+                loadData(true, false)
             }
 
             freeTrainSwipe.setOnLoadMoreListener {
-                loadData(false)
+                loadData(false, false)
             }
         }
     }
@@ -94,7 +96,9 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
     override fun onResume() {
         super.onResume()
         getSelectByDictType()
-        loadData(true)
+        freeTrainListAdapter.clearData()
+        freeTrainListAdapter.showEmptyView = false
+        loadData(true, true)
     }
 
     /**
@@ -116,7 +120,7 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
     /**
      * 加载列表
      */
-    private fun loadData(isRefresh: Boolean) {
+    private fun loadData(isRefresh: Boolean, showLoading: Boolean) {
         if (isRefresh) {
             page = 1
             binding.freeTrainSwipe.resetNoMoreData()
@@ -125,7 +129,7 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
         } else {
             page++
         }
-        viewModel.getFreeTrainList(type, page, fail = {
+        viewModel.getFreeTrainList(showLoading, type, page, fail = {
             endRefresh()
             it.toast()
         }, success = {
@@ -137,8 +141,12 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
                 if (page >= it.pages) {
                     binding.freeTrainSwipe.finishLoadMoreWithNoMoreData()
                 }
-                binding.freeTrainSwipe.show(freeTrainList.isNullOrEmpty().not())
-                binding.emptyLayout.show(freeTrainList.isNullOrEmpty())
+                if (freeTrainList.isNullOrEmpty()) {
+                    gridLayoutManager?.spanCount = 1
+                } else {
+                    gridLayoutManager?.spanCount = 1
+                }
+                freeTrainListAdapter.showEmptyView = freeTrainList.isNullOrEmpty()
                 freeTrainListAdapter.setData(freeTrainList)
             }
         })

+ 2 - 1
workbenches/src/main/java/com/yingyang/workbenches/freetraining/FreeTrainViewModel.kt

@@ -29,11 +29,12 @@ class FreeTrainViewModel : BaseViewModel() {
      * 获取游戏列表
      */
     fun getFreeTrainList(
+        showLoading: Boolean,
         type: String,
         page: Int,
         fail: ((msg: String) -> Unit)? = null,
         success: ((success: FreeTrainBean?) -> Unit)? = null,
-    ) = launchFlow(true) {
+    ) = launchFlow(showLoading) {
         WORKBENCHES_API.getTrainingList(type, page, "12")
     }.runUI(
         success,

+ 0 - 18
workbenches/src/main/res/layout/activity_free_train.xml

@@ -95,24 +95,6 @@
                         android:layout_marginBottom="@dimen/divider_8px" />
 
                 </com.scwang.smartrefresh.layout.SmartRefreshLayout>
-
-                <LinearLayout
-                    android:id="@+id/emptyLayout"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:orientation="vertical"
-                    android:visibility="gone"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/tvTitle"
-                    tools:ignore="MissingConstraints">
-
-                    <androidx.appcompat.widget.AppCompatImageView style="@style/empty_image_view_style" />
-
-                    <androidx.appcompat.widget.AppCompatTextView style="@style/empty_text_view_style" />
-
-                </LinearLayout>
             </androidx.constraintlayout.widget.ConstraintLayout>
         </androidx.cardview.widget.CardView>
     </androidx.constraintlayout.widget.ConstraintLayout>