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