diff --git a/app/src/main/java/com/chwl/app/home/HomeViewModel.kt b/app/src/main/java/com/chwl/app/home/HomeViewModel.kt index b9783288d..416b1d399 100644 --- a/app/src/main/java/com/chwl/app/home/HomeViewModel.kt +++ b/app/src/main/java/com/chwl/app/home/HomeViewModel.kt @@ -43,9 +43,6 @@ class HomeViewModel : BaseViewModel() { private val _collectLiveData = MutableLiveData>() val collectLiveData: LiveData> = _collectLiveData - private val _tagLiveData = MutableLiveData>() - val tagLiveData: LiveData> = _tagLiveData - private val _emptyLiveData = MutableLiveData() val emptyLiveData: LiveData = _emptyLiveData @@ -124,12 +121,6 @@ class HomeViewModel : BaseViewModel() { ) } - fun getTagInfo() { - safeLaunch { - _tagLiveData.value = HomeModel.getHomeTag() - } - } - fun getGameRoom(pageNum: Int, pageSize: Int) { safeLaunch( onError = { diff --git a/app/src/main/java/com/chwl/app/home/adapter/HomeRankViewFlipperAdapter.kt b/app/src/main/java/com/chwl/app/home/adapter/HomeRankViewFlipperAdapter.kt new file mode 100644 index 000000000..b1e599210 --- /dev/null +++ b/app/src/main/java/com/chwl/app/home/adapter/HomeRankViewFlipperAdapter.kt @@ -0,0 +1,37 @@ +package com.chwl.app.home.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.BaseAdapter +import com.chwl.app.R + +class HomeRankViewFlipperAdapter : BaseAdapter() { + + private val list = ArrayList>() + + fun setNewData(newList: List>) { + list.clear() + list.addAll(newList) + notifyDataSetChanged() + } + + override fun getCount(): Int { + return list.size + } + + override fun getItem(position: Int): Any { + return list.get(position) + } + + override fun getItemId(position: Int): Long { + return position.toLong() + } + + override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { + val view = convertView ?: LayoutInflater.from(parent.context) + .inflate(R.layout.home_recommend_item_rank, parent, false) + return view + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/home/fragment/HomeRecommendFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/HomeRecommendFragment.kt index 6eb6bf184..965d6f08a 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/HomeRecommendFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/HomeRecommendFragment.kt @@ -15,6 +15,7 @@ import com.chwl.app.base.BaseViewBindingFragment import com.chwl.app.databinding.FragmentHomeRecommendBinding import com.chwl.app.home.HomeViewModel import com.chwl.app.home.adapter.HomeBannerAdapter +import com.chwl.app.home.adapter.HomeRankViewFlipperAdapter import com.chwl.app.home.dialog.RecommendRoomDialog import com.chwl.app.support.FragmentVisibleStateHelper import com.chwl.app.ui.search.SearchActivity @@ -46,10 +47,14 @@ class HomeRecommendFragment : BaseViewBindingFragment + resourceViews.forEachIndexed { index, imageView -> + imageView.isVisible = true + imageView.load(it[index].icon) + imageView.setOnClickListener { _ -> when { - it[i].resourceType == 5 -> { - CommonWebViewActivity.start(context, it[i].resourceContent) + it[index].resourceType == 5 -> { + CommonWebViewActivity.start(context, it[index].resourceContent) } else -> { dialogManager.showProgressDialog(mContext) - homeViewModel.getResourceJumpInfo(it[i].id) + homeViewModel.getResourceJumpInfo(it[index].id) } } } @@ -140,6 +143,19 @@ class HomeRecommendFragment : BaseViewBindingFragment>() + repeat(3) { + list.add(ArrayList()) + } + rankAdapter.setNewData(list) + binding.viewFlipper.setInAnimation(context, R.animator.home_rank_anim_in) + binding.viewFlipper.setOutAnimation(context, R.animator.home_rank_anim_out) + binding.viewFlipper.startFlipping() + } + override fun onClick(v: View) { when (v.id) { R.id.tv_search -> { @@ -239,4 +255,11 @@ class HomeRecommendFragment : BaseViewBindingFragment + + + + \ No newline at end of file diff --git a/app/src/main/res/animator/home_rank_anim_out.xml b/app/src/main/res/animator/home_rank_anim_out.xml new file mode 100644 index 000000000..7db84c7a3 --- /dev/null +++ b/app/src/main/res/animator/home_rank_anim_out.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xxhdpi/home_rank_1.png b/app/src/main/res/drawable-xxhdpi/home_rank_1.png new file mode 100644 index 000000000..fa71d34fd Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/home_rank_1.png differ diff --git a/app/src/main/res/drawable-xxhdpi/home_rank_2.png b/app/src/main/res/drawable-xxhdpi/home_rank_2.png new file mode 100644 index 000000000..181a7a59a Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/home_rank_2.png differ diff --git a/app/src/main/res/drawable-xxhdpi/home_rank_3.png b/app/src/main/res/drawable-xxhdpi/home_rank_3.png new file mode 100644 index 000000000..064383a05 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/home_rank_3.png differ diff --git a/app/src/main/res/layout/fragment_home_recommend.xml b/app/src/main/res/layout/fragment_home_recommend.xml index 164ada4d2..79695eb5b 100644 --- a/app/src/main/res/layout/fragment_home_recommend.xml +++ b/app/src/main/res/layout/fragment_home_recommend.xml @@ -35,7 +35,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - + + diff --git a/app/src/main/res/layout/home_recommend_item_rank.xml b/app/src/main/res/layout/home_recommend_item_rank.xml new file mode 100644 index 000000000..012e2ce34 --- /dev/null +++ b/app/src/main/res/layout/home_recommend_item_rank.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index e4a866df1..e0ebb867b 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -605,6 +605,11 @@ 50% + +