Forráskód Böngészése

feat: 粉丝排行榜total

tongmengxiao 1 éve
szülő
commit
740a807d02

+ 1 - 1
room/src/main/java/com/swago/room/base/BaseComFragment.kt

@@ -372,7 +372,7 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
             )
                 .apply {
                     this.openGiftIconDialog = { nickName, userId, nickIcon ->
-                        openGiftDialog(nickName, userId)
+                        openGiftDialog(nickName, userId, nickIcon)
                     }
                     this.sendMsgInRoom = {
                         if (isForbid) {

+ 27 - 3
room/src/main/java/com/swago/room/ranklist/RankListActivity.kt

@@ -6,6 +6,7 @@ import android.graphics.Typeface
 import androidx.activity.viewModels
 import androidx.core.content.ContextCompat
 import androidx.fragment.app.viewModels
+import androidx.viewpager.widget.ViewPager.OnPageChangeListener
 import com.alibaba.android.arouter.facade.annotation.Autowired
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.alibaba.android.arouter.launcher.ARouter
@@ -47,6 +48,10 @@ class RankListActivity : BaseXActivity<ActivityRankListBinding>() {
         AppContext.getContext().resources.getString(R.string.monthly)
     )
 
+    private var dayCount = ""
+    private var weekCount = ""
+    private var monthCount = ""
+
 
     override fun loadData() {
         roomOtherVm.getRankList(roomId, 1, 1)
@@ -62,13 +67,32 @@ class RankListActivity : BaseXActivity<ActivityRankListBinding>() {
         binding.toolbar.tvTitle.setTextColor(ContextCompat.getColor(this, R.color._ffffff))
         binding.viewPager.offscreenPageLimit = 3
         val listFragments = arrayListOf(
-            RankListFragment.newInstance(roomId, 1),
-            RankListFragment.newInstance(roomId, 2),
-            RankListFragment.newInstance(roomId, 3)
+            RankListFragment.newInstance(roomId, 1).apply { this.sendTotalCount = { dayCount = it}},
+            RankListFragment.newInstance(roomId, 2).apply { this.sendTotalCount = { weekCount = it}},
+            RankListFragment.newInstance(roomId, 3).apply { this.sendTotalCount = { monthCount = it }}
         )
         val viewPagerAdapter = SwagoAdapter(listFragments, supportFragmentManager, listTitles)
         binding.viewPager.adapter = viewPagerAdapter
 
+        binding.viewPager.addOnPageChangeListener(object : OnPageChangeListener{
+            override fun onPageScrolled(p0: Int, p1: Float, p2: Int) {
+
+            }
+
+            override fun onPageSelected(position: Int) {
+               when(position){
+                   0 ->  binding.tvIncome.text = dayCount
+                   1 ->  binding.tvIncome.text = weekCount
+                   2 ->  binding.tvIncome.text = monthCount
+               }
+            }
+
+            override fun onPageScrollStateChanged(p0: Int) {
+
+            }
+
+        })
+
         val commonNavigator = CommonNavigator(this)
         commonNavigator.isAdjustMode = true
         commonNavigator.adapter = object : CommonNavigatorAdapter() {

+ 4 - 0
room/src/main/java/com/swago/room/ranklist/RankListFragment.kt

@@ -19,6 +19,7 @@ import com.swago.room.vm.RoomOtherVm
 class RankListFragment :  BaseListFragment<FragmentRankListBinding, RankListModel.ListBean>(){
 
     private val roomOtherVm by viewModels<RoomOtherVm>()
+    var sendTotalCount:((total:String)->Unit)? = null
 
     private var type = 1
     private var roomId = ""
@@ -55,6 +56,9 @@ class RankListFragment :  BaseListFragment<FragmentRankListBinding, RankListMode
                 smartRecyclerView.onFetchDataFinish(it,true)
             }
         }
+        roomOtherVm.totalLiveData.observe(this){
+            sendTotalCount?.invoke(it)
+        }
     }
 
     companion object{