feat:恢复首页banner

This commit is contained in:
max
2024-04-07 10:23:17 +08:00
parent b4f26d324c
commit bf133e5dc6
4 changed files with 105 additions and 28 deletions

View File

@@ -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<FragmentHomeBinding>(), 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<BannerInfo?> =
binding.bannerView as BannerViewPager<BannerInfo?>
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) {

View File

@@ -39,19 +39,9 @@ class RecommendFragment : BaseViewBindingFragment<FragmentRecommendBinding>() {
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 =

View File

@@ -57,12 +57,65 @@
app:layout_constraintStart_toStartOf="@id/tv_title"
app:layout_constraintTop_toBottomOf="@id/tv_title" />
<FrameLayout
android:id="@+id/frameLayout"
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/refresh_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="@dimen/main_bottom_bar_top_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_indicator" />
app:layout_constraintTop_toBottomOf="@id/iv_indicator">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
app:elevation="0dp"
app:layout_behavior="com.chwl.app.ui.widget.AppBarLayoutBehavior">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="@color/transparent"
app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.zhpan.bannerview.BannerViewPager
android:id="@+id/banner_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginHorizontal="@dimen/dp_12"
android:layout_marginTop="@dimen/dp_16"
android:background="@drawable/base_shape_negative_5dp"
android:visibility="gone"
app:bvp_auto_play="true"
app:bvp_can_loop="true"
app:bvp_indicator_checked_color="@color/color_9168FA"
app:bvp_indicator_normal_color="@color/color_B3B3C3"
app:bvp_indicator_radius="@dimen/dp_4"
app:bvp_indicator_visibility="visible"
app:bvp_page_style="multi_page_scale"
app:layout_constraintDimensionRatio="351:80"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -12,19 +12,12 @@
</data>
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/refresh_layout"
<com.chwl.library.common.widget.VpRecyclerView
android:id="@+id/mRecyclerRoom"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.chwl.library.common.widget.VpRecyclerView
android:id="@+id/mRecyclerRoom"
android:layout_marginTop="@dimen/dp_12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:overScrollMode="never"
android:scrollbars="none" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
android:layout_height="match_parent"
android:paddingTop="@dimen/dp_12"
android:overScrollMode="never"
android:scrollbars="none" />
</layout>