From 2f204867ad034d3a95ba9acc112d6507f296447b Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期三, 23 十月 2024 18:20:43 +0800 Subject: [PATCH] save --- app/src/main/java/com/sinata/xqmuse/ui/course/CourseFragment.kt | 187 +++++++++++++--------------------------------- 1 files changed, 53 insertions(+), 134 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/CourseFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/CourseFragment.kt index fdbd73f..a2cd7ac 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/course/CourseFragment.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/course/CourseFragment.kt @@ -1,156 +1,75 @@ package com.sinata.xqmuse.ui.course -import androidx.recyclerview.widget.LinearLayoutManager -import cn.sinata.xldutils.activity.BaseActivity +import android.util.TypedValue +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentPagerAdapter +import androidx.viewpager.widget.ViewPager import cn.sinata.xldutils.fragment.BaseFragment +import cn.sinata.xldutils.gone +import cn.sinata.xldutils.visible import com.sinata.xqmuse.R -import com.sinata.xqmuse.network.HttpManager -import com.sinata.xqmuse.network.entity.* -import com.sinata.xqmuse.network.requestByF -import com.sinata.xqmuse.ui.course.adapter.* -import com.sinata.xqmuse.ui.home.adapter.CourseAdapter -import com.sinata.xqmuse.ui.home.adapter.HomeBannerAdapter -import com.sinata.xqmuse.utils.Const -import com.sinata.xqmuse.utils.event.EmptyEvent -import com.sinata.xqmuse.utils.extention.clickDelay -import com.youth.banner.indicator.CircleIndicator import kotlinx.android.synthetic.main.fragment_course.* -import org.greenrobot.eventbus.EventBus -import org.greenrobot.eventbus.Subscribe -import org.jetbrains.anko.support.v4.startActivity +import org.jetbrains.anko.textColorResource class CourseFragment : BaseFragment() { override fun contentViewId() = R.layout.fragment_course - private val bannerImg = arrayListOf<Banner>() -// private val bannerAdapter by lazy { -// HomeBannerAdapter(bannerImg, requireContext()) -// } - - private val filterList = arrayListOf<Filter>() - private val filterAdapter = FilterAdapter(filterList) - - private var page = 1 - var search: String? = null //搜索 - - private val course = arrayListOf<Course>() - private val courseAdapter = CourseAdapter(course) + private val frags = arrayListOf<Fragment>() override fun onFirstVisibleToUser() { - EventBus.getDefault().register(this) -// banner.adapter = bannerAdapter - banner.indicator = CircleIndicator(requireContext()) - rv_filter.layoutManager = LinearLayoutManager(requireContext()) - rv_filter.adapter = filterAdapter + frags.add(PushCourseFragment()) + frags.add(TeacherFragment()) + view_pager.adapter = object :FragmentPagerAdapter(childFragmentManager){ + override fun getCount() = 2 - rv_course.layoutManager = LinearLayoutManager(requireContext()) - rv_course.adapter = courseAdapter - courseAdapter.setOnItemClickListener { view, position -> - startActivity<CourseDetailActivity>("id" to course[position].id) - } + override fun getItem(position: Int) = frags[position] - tv_my_course.setOnClickListener { - startActivity<MyCourseActivity>() - } + override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) { - tv_search.clickDelay { - val s = et_search.text.toString() - search = if (s.isNullOrEmpty()) null else s - (requireActivity() as BaseActivity).hideInputMethod() - refreshLayout.autoRefresh() + } } + view_pager.offscreenPageLimit = 2 + cb_pub.setOnClickListener { + view_pager.currentItem = 0 + } + cb_teacher.setOnClickListener { + view_pager.currentItem = 1 + } + view_pager.setOnPageChangeListener(object :ViewPager.OnPageChangeListener{ + override fun onPageScrolled( + position: Int, + positionOffset: Float, + positionOffsetPixels: Int + ) { - refreshLayout.setOnRefreshListener { - val s = et_search.text.toString() - search = if (s.isNullOrEmpty()) null else s - page = 1 - getData() - } - refreshLayout.setOnLoadMoreListener { - page++ - getData() - } - banner.setOnBannerListener { data, position -> - val banner = data as Banner - banner.jumpPage(requireContext()) - } - getImg() - getFilter() - page = 1 - getData() + } + + override fun onPageSelected(position: Int) { + checkTab(position) + } + + override fun onPageScrollStateChanged(state: Int) { + } + }) } - private fun getFilter() { - HttpManager.getList().requestByF(this){_, data-> - filterList.clear() - filterList.add(Filter("类型:",data?.fitnessType?: arrayListOf())) - filterList.add(Filter("部位:",data?.fitnessPosition?: arrayListOf())) - val diff = arrayListOf<FilterItem>() - diff.add(FilterItem(1,"H1")) - diff.add(FilterItem(2,"H2")) - diff.add(FilterItem(3,"H3")) - diff.add(FilterItem(4,"H4")) - diff.add(FilterItem(5,"H5")) - filterList.add(Filter("难度:",diff)) - val times = arrayListOf<FilterItem>() - times.add(FilterItem(1,"小于10分钟")) - times.add(FilterItem(2,"10-20分钟")) - times.add(FilterItem(3,"大于20分钟")) - filterList.add(Filter("时长:",times)) - filterAdapter.notifyDataSetChanged() + private fun checkTab(i: Int){ + if (i == 0){ + cb_pub.textColorResource = R.color.textColor + cb_pub.setTextSize(TypedValue.COMPLEX_UNIT_SP,21f) + iv_tab_1.visible() + cb_teacher.textColorResource = R.color.textColor99 + cb_teacher.setTextSize(TypedValue.COMPLEX_UNIT_SP,16f) + iv_tab_2.gone() + }else{ + cb_teacher.textColorResource = R.color.textColor + cb_teacher.setTextSize(TypedValue.COMPLEX_UNIT_SP,21f) + iv_tab_2.visible() + cb_pub.textColorResource = R.color.textColor99 + cb_pub.setTextSize(TypedValue.COMPLEX_UNIT_SP,16f) + iv_tab_1.gone() } - } - - - private fun getData() { - val diff = filterList.filter { it.name == "难度:" }.firstOrNull()?.list?.filter { it.checked }?.joinToString (","){ it.id.toString() } - val position = filterList.filter { it.name == "部位:" }.firstOrNull()?.list?.filter { it.checked }?.joinToString (","){ it.name } - val times = filterList.filter { it.name == "时长:" }.firstOrNull()?.list?.filter { it.checked }?.joinToString (","){ it.id.toString() } - val types = filterList.filter { it.name == "类型:" }.firstOrNull()?.list?.filter { it.checked }?.joinToString (","){ it.id.toString() } - HttpManager.queryCourseList(page,if (diff.isNullOrEmpty()) null else diff, - if (position.isNullOrEmpty()) null else position,if (times.isNullOrEmpty()) null else times, - if (types.isNullOrEmpty()) null else types,search).requestByF(this,success = {_,data-> - if (page == 1) - course.clear() - course.addAll(data?: arrayListOf()) - courseAdapter.notifyDataSetChanged() - if (course.isEmpty()) - refreshLayout.finishRefreshWithNoMoreData() - else if (data.isNullOrEmpty()) - refreshLayout.finishLoadMoreWithNoMoreData() - else if (page == 1) - refreshLayout.finishRefresh() - else - refreshLayout.finishLoadMore() - }){_,_-> - if (page == 1) - refreshLayout.finishRefresh(false) - else - refreshLayout.finishLoadMore(false) - } - } - - private fun getImg(){ - HttpManager.queryBanner().requestByF(this){ _, data-> - bannerImg.clear() - bannerImg.addAll(data?: arrayListOf()) -// bannerAdapter.notifyDataSetChanged() - banner.currentItem = 1 - } - } - - @Subscribe - fun refresh(e:EmptyEvent){ - if (e.code == Const.EventCode.REFRESH_COURSE){ - refreshLayout.resetNoMoreData() - page = 1 - getData() - } - } - - override fun onDestroy() { - super.onDestroy() - EventBus.getDefault().unregister(this) } } \ No newline at end of file -- Gitblit v1.7.1