From bf133e5dc6ea36b03d53d2b9c2ed6d18be61adfe Mon Sep 17 00:00:00 2001 From: max Date: Sun, 7 Apr 2024 10:23:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=81=A2=E5=A4=8D=E9=A6=96=E9=A1=B5banner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chwl/app/home/fragment/HomeFragment.kt | 45 +++++++++++++- .../app/home/fragment/RecommendFragment.kt | 10 ---- app/src/main/res/layout/fragment_home.xml | 59 ++++++++++++++++++- .../main/res/layout/fragment_recommend.xml | 19 ++---- 4 files changed, 105 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt index 8efa920f7..ae796161f 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt @@ -1,29 +1,70 @@ package com.chwl.app.home.fragment import android.view.View +import androidx.fragment.app.activityViewModels import com.chwl.app.R import com.chwl.app.application.IReportConstants import com.chwl.app.application.ReportManager import com.chwl.app.base.BaseViewBindingFragment import com.chwl.app.databinding.FragmentHomeBinding +import com.chwl.app.home.HomeViewModel +import com.chwl.app.home.adapter.HomeBannerAdapter import com.chwl.app.ui.search.SearchActivity -import com.chwl.app.ui.webview.CommonWebViewActivity +import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil +import com.chwl.app.utils.CommonJumpHelper import com.chwl.core.DemoCache -import com.chwl.core.UriProvider +import com.chwl.core.home.bean.BannerInfo +import com.chwl.core.home.event.RefreshHomeDataEvent +import com.chwl.library.utils.ListUtils +import com.zhpan.bannerview.BannerViewPager +import org.greenrobot.eventbus.EventBus /** 首页 */ class HomeFragment : BaseViewBindingFragment(), View.OnClickListener { + private val homeViewModel: HomeViewModel by activityViewModels() override fun init() { initListener() + initBanner() childFragmentManager.beginTransaction() .replace(R.id.frameLayout, RecommendFragment(), "RECOMMEND").commitAllowingStateLoss() } private fun initListener() { binding.ivSearch.setOnClickListener(this) + binding.refreshLayout.setOnRefreshListener { + it.finishRefresh() + EventBus.getDefault().post(RefreshHomeDataEvent()) + homeViewModel.getBannerInfo() + } + binding.refreshLayout.isEnableLoadmore = false + binding.refreshLayout.isEnableOverScrollBounce = false + } + + private fun initBanner() { + val bannerView: BannerViewPager = + binding.bannerView as BannerViewPager + homeViewModel.bannerLiveData.observe(this) { + it?.let { + if (ListUtils.isListEmpty(it)) { + bannerView.visibility = View.GONE + return@let + } + bannerView.visibility = View.VISIBLE + bannerView.adapter = HomeBannerAdapter() + bannerView.post { + binding.bannerView.setPageMargin(UIUtil.dip2px(mContext, 8.0)) + .setScrollDuration(800) + .setOnPageClickListener { _: View?, position: Int -> + CommonJumpHelper.bannerJump(context, it[position]) + } + .create(it) + } + } + } + homeViewModel.getBannerInfo() } override fun onClick(v: View) { diff --git a/app/src/main/java/com/chwl/app/home/fragment/RecommendFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/RecommendFragment.kt index 777ef758c..2bdd6f43e 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/RecommendFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/RecommendFragment.kt @@ -39,19 +39,9 @@ class RecommendFragment : BaseViewBindingFragment() { private var isShield = false override fun init() { - initRefreshView() initHotRoomTab() } - private fun initRefreshView() { - binding.refreshLayout.setOnRefreshListener { - binding.refreshLayout.finishRefresh() - EventBus.getDefault().post(RefreshHomeDataEvent()) - } - binding.refreshLayout.isEnableLoadmore = false - binding.refreshLayout.isEnableOverScrollBounce = false - } - private fun initHotRoomTab() { roomHotAdapter = HomeHotAdapter() roomHotAdapter.onItemClickListener = diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 28ef80e91..2ff605278 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -57,12 +57,65 @@ app:layout_constraintStart_toStartOf="@id/tv_title" app:layout_constraintTop_toBottomOf="@id/tv_title" /> - + app:layout_constraintTop_toBottomOf="@id/iv_indicator"> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_recommend.xml b/app/src/main/res/layout/fragment_recommend.xml index a1f7a30af..a8a0cb693 100644 --- a/app/src/main/res/layout/fragment_recommend.xml +++ b/app/src/main/res/layout/fragment_recommend.xml @@ -12,19 +12,12 @@ - - - - - + android:layout_height="match_parent" + android:paddingTop="@dimen/dp_12" + android:overScrollMode="never" + android:scrollbars="none" /> \ No newline at end of file