|
@@ -1,7 +1,11 @@
|
|
|
package com.cooleshow.teacher.ui.course;
|
|
|
|
|
|
+import android.graphics.Color;
|
|
|
import android.graphics.Typeface;
|
|
|
import android.os.Bundle;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.View;
|
|
|
+import android.widget.TextView;
|
|
|
|
|
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
|
|
import com.cooleshow.base.router.RouterPath;
|
|
@@ -10,14 +14,15 @@ import com.cooleshow.base.ui.fragment.BaseMVPFragment;
|
|
|
import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
|
|
|
import com.cooleshow.teacher.R;
|
|
|
import com.cooleshow.teacher.adapter.MineCoursePageAdapter;
|
|
|
-import com.cooleshow.teacher.bean.CourseFilterStatusBean;
|
|
|
import com.cooleshow.teacher.bean.QuerySubjectBean;
|
|
|
-import com.cooleshow.teacher.constants.CourseConstants;
|
|
|
import com.cooleshow.teacher.contract.MineCourseContract;
|
|
|
import com.cooleshow.teacher.databinding.ActivityMineCourseLayoutBinding;
|
|
|
import com.cooleshow.teacher.presenter.course.MineCoursePresenter;
|
|
|
+import com.google.android.material.tabs.TabLayout;
|
|
|
+import com.google.android.material.tabs.TabLayoutMediator;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
@@ -31,6 +36,7 @@ import androidx.viewpager2.widget.ViewPager2;
|
|
|
@Route(path = RouterPath.CourseCenter.TEACHER_MINE_COURSE)
|
|
|
public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayoutBinding, MineCoursePresenter> implements MineCourseContract.MineCourseView {
|
|
|
public static final String SELECT_POSITION = "selectPosition";
|
|
|
+ private List<String> titles = new ArrayList<String>(Arrays.asList("VIP定制课","趣纠课", "直播课", "视频课", "琴房课"));
|
|
|
private ArrayList<Fragment> mFragments = new ArrayList<>();
|
|
|
private SparringCourseFragment mSparringCourseFragment;
|
|
|
private LiveCourseFragment mLiveCourseFragment;
|
|
@@ -52,71 +58,28 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayout
|
|
|
@Override
|
|
|
protected void initView() {
|
|
|
initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "我的课程");
|
|
|
- viewBinding.radioGroup.setOnCheckedChangeListener((radioGroup, i) -> {
|
|
|
- if (i == R.id.rb_sparring) {
|
|
|
- viewBinding.viewPager.setCurrentItem(0, false);
|
|
|
- }
|
|
|
- if (i == R.id.rb_live_course) {
|
|
|
- viewBinding.viewPager.setCurrentItem(1, false);
|
|
|
- }
|
|
|
- if (i == R.id.rb_video_course) {
|
|
|
- viewBinding.viewPager.setCurrentItem(2, false);
|
|
|
- }
|
|
|
- if (i == R.id.rb_piano_room_course) {
|
|
|
- viewBinding.viewPager.setCurrentItem(3, false);
|
|
|
- }
|
|
|
- }
|
|
|
- );
|
|
|
- viewBinding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
|
|
- @Override
|
|
|
- public void onPageSelected(int position) {
|
|
|
- super.onPageSelected(position);
|
|
|
- changeTableLayoutBar(position);
|
|
|
- BaseMVPFragment fragment = (BaseMVPFragment) mFragments.get(position);
|
|
|
- fragment.refreshData();
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
+ viewBinding.toolbarInclude.toolbar.setBackgroundColor(Color.TRANSPARENT);
|
|
|
|
|
|
- private void changeTableLayoutBar(int position) {
|
|
|
- if (position == 0) {
|
|
|
- viewBinding.rbSparring.setChecked(true);
|
|
|
- viewBinding.rbSparring.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
|
|
- viewBinding.rbLiveCourse.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- viewBinding.rbVideoCourse.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- viewBinding.rbPianoRoomCourse.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- }
|
|
|
- if (position == 1) {
|
|
|
- viewBinding.rbLiveCourse.setChecked(true);
|
|
|
- viewBinding.rbSparring.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- viewBinding.rbLiveCourse.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
|
|
- viewBinding.rbVideoCourse.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- viewBinding.rbPianoRoomCourse.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- }
|
|
|
- if (position == 2) {
|
|
|
- viewBinding.rbVideoCourse.setChecked(true);
|
|
|
- viewBinding.rbSparring.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- viewBinding.rbLiveCourse.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- viewBinding.rbVideoCourse.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
|
|
- viewBinding.rbPianoRoomCourse.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- }
|
|
|
- if (position == 3) {
|
|
|
- viewBinding.rbPianoRoomCourse.setChecked(true);
|
|
|
- viewBinding.rbSparring.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- viewBinding.rbLiveCourse.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- viewBinding.rbVideoCourse.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
- viewBinding.rbPianoRoomCourse.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public void initData() {
|
|
|
super.initData();
|
|
|
+ initListener();
|
|
|
int selectPosition = getIntent().getIntExtra(SELECT_POSITION, -1);
|
|
|
+
|
|
|
+ TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(viewBinding.tablayout, viewBinding.viewPager, (tab, position) -> {
|
|
|
+ //这里需要根据position修改tab的样式和文字等
|
|
|
+ createTab(tab, titles.get(position));
|
|
|
+ });
|
|
|
+
|
|
|
mSparringCourseFragment = new SparringCourseFragment();
|
|
|
mLiveCourseFragment = new LiveCourseFragment();
|
|
|
mVideoCourseFragment = new VideoCourseFragment();
|
|
|
mPianoRoomCourseFragment = new PianoRoomCourseFragment();
|
|
|
+ VIPCourseGroupFragment vipCourseFragment =new VIPCourseGroupFragment();
|
|
|
+ mFragments.add(vipCourseFragment);
|
|
|
mFragments.add(mSparringCourseFragment);
|
|
|
mFragments.add(mLiveCourseFragment);
|
|
|
mFragments.add(mVideoCourseFragment);
|
|
@@ -125,6 +88,9 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayout
|
|
|
mineCoursePageAdapter.setFragments(mFragments);
|
|
|
viewBinding.viewPager.setAdapter(mineCoursePageAdapter);
|
|
|
viewBinding.viewPager.setOffscreenPageLimit(mFragments.size());
|
|
|
+ tabLayoutMediator.attach();
|
|
|
+
|
|
|
+
|
|
|
presenter.querySubjectItem();
|
|
|
if (selectPosition != -1 && selectPosition < mFragments.size()) {
|
|
|
viewBinding.viewPager.post(new Runnable() {
|
|
@@ -136,6 +102,46 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayout
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void initListener() {
|
|
|
+ viewBinding.tablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
|
|
|
+ @Override
|
|
|
+ public void onTabSelected(TabLayout.Tab tab) {
|
|
|
+ if (tab != null && tab.getCustomView() != null) {
|
|
|
+ View customView = tab.getCustomView();
|
|
|
+ TextView tv_text = customView.findViewById(com.cooleshow.chatmodule.R.id.tv_text);
|
|
|
+ tv_text.setTextSize(16);
|
|
|
+ tv_text.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_131415));
|
|
|
+ tv_text.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onTabUnselected(TabLayout.Tab tab) {
|
|
|
+ if (tab != null && tab.getCustomView() != null) {
|
|
|
+ View customView = tab.getCustomView();
|
|
|
+ TextView tv_text = customView.findViewById(com.cooleshow.chatmodule.R.id.tv_text);
|
|
|
+ tv_text.setTextSize(16);
|
|
|
+ tv_text.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_80000000));
|
|
|
+ tv_text.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onTabReselected(TabLayout.Tab tab) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ viewBinding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
|
|
+ @Override
|
|
|
+ public void onPageSelected(int position) {
|
|
|
+ super.onPageSelected(position);
|
|
|
+ BaseMVPFragment fragment = (BaseMVPFragment) mFragments.get(position);
|
|
|
+ fragment.refreshData();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
protected MineCoursePresenter createPresenter() {
|
|
|
return new MineCoursePresenter();
|
|
@@ -156,4 +162,12 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseLayout
|
|
|
mPianoRoomCourseFragment.querySubjectItemSuccess(data);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private TabLayout.Tab createTab(TabLayout.Tab tab, String text) {
|
|
|
+ View view = LayoutInflater.from(this).inflate(R.layout.view_mine_course_tab_layout, null);
|
|
|
+ TextView tv_text = view.findViewById(R.id.tv_text);
|
|
|
+ tv_text.setText(text);
|
|
|
+ tab.setCustomView(view);
|
|
|
+ return tab;
|
|
|
+ }
|
|
|
}
|