瀏覽代碼

增加学生端新首页UI,增加部分按钮点击事件

Pq 2 年之前
父節點
當前提交
5512134f73

+ 71 - 3
student/src/main/java/com/cooleshow/student/ui/main/NewHomeFragment.java

@@ -60,6 +60,7 @@ import androidx.fragment.app.Fragment;
 import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.viewpager.widget.ViewPager;
+import androidx.viewpager2.widget.ViewPager2;
 
 import static com.cooleshow.student.constants.CourseConstants.LIVE_COURSE;
 import static com.cooleshow.student.constants.CourseConstants.OTHER_COURSE;
@@ -84,6 +85,13 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
     private NewHomeVideoCourseAdapter mHomeVideoCourseAdapter;
     private TalentStyleFragment mTalentStyleFragment;
     private HotNewsFragment mHotNewsFragment;
+    private ViewPager2.OnPageChangeCallback onPageChangeCallback = new ViewPager2.OnPageChangeCallback() {
+        @Override
+        public void onPageSelected(int position) {
+            super.onPageSelected(position);
+            switchTabStyle(position);
+        }
+    };
 
     @Override
     protected FragmentNewHomeLayoutBinding getLayoutView() {
@@ -109,6 +117,8 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
         mViewBinding.tvHotAlbumMore.setOnClickListener(this);
         mViewBinding.tvHotTrackMore.setOnClickListener(this);
         mViewBinding.tvVideoCourseMore.setOnClickListener(this);
+        mViewBinding.viewTalentStyleClick.setOnClickListener(this);
+        mViewBinding.viewHotNewsClick.setOnClickListener(this);
     }
 
     @Override
@@ -205,6 +215,8 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
     }
 
     private void initListener() {
+        mViewBinding.viewPagerBottom.registerOnPageChangeCallback(onPageChangeCallback);
+
         mViewBinding.refreshLayout.setOnRefreshListener(refreshLayout -> {
             refreshLayout.finishRefresh();
             presenter.queryCountOfUnread();
@@ -549,10 +561,10 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
     @Override
     public void onClick(View v) {
         int id = v.getId();
-        if (UiUtils.isFastClick()) {
-            return;
-        }
         if (id == R.id.iv_scan) {
+            if (UiUtils.isFastClick()) {
+                return;
+            }
             //二维码扫描
             ARouter.getInstance()
                     .build(RouterPath.BaseCenter.SCAN_QR_CODE)
@@ -561,18 +573,27 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
         }
         if (id == R.id.im_message) {
             //消息列表页面
+            if (UiUtils.isFastClick()) {
+                return;
+            }
             ARouter.getInstance().build(RouterPath.MessageCenter.TEACHER_MESSAGE_MESSAGEBOX)
                     .navigation();
             return;
         }
         if (id == R.id.fl_course_enter) {
             //进入教室
+            if (UiUtils.isFastClick()) {
+                return;
+            }
             if (mRecentCourses != null) {
                 gotoCourseDetail(mRecentCourses);
             }
             return;
         }
         if (id == R.id.bg_announcement || id == R.id.bg_announcement2) {
+            if (UiUtils.isFastClick()) {
+                return;
+            }
             if (TextUtils.isEmpty(noticeId)) {
                 return;
             }
@@ -585,6 +606,9 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
         }
 
         if (id == R.id.tv_recommend_teacher_more) {
+            if (UiUtils.isFastClick()) {
+                return;
+            }
             //老师风采
             ARouter.getInstance()
                     .build(RouterPath.WebCenter.ACTIVITY_HTML)
@@ -593,6 +617,9 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
             return;
         }
         if (id == R.id.tv_hot_album_more) {
+            if (UiUtils.isFastClick()) {
+                return;
+            }
             //热门专辑
             ARouter.getInstance()
                     .build(RouterPath.WebCenter.ACTIVITY_HTML)
@@ -601,12 +628,18 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
             return;
         }
         if (id == R.id.tv_hot_track_more) {
+            if (UiUtils.isFastClick()) {
+                return;
+            }
             //热门曲目更多
             WebStartHelper.startHotMusicSheetList();
             return;
         }
 
         if (id == R.id.tv_video_course_more) {
+            if (UiUtils.isFastClick()) {
+                return;
+            }
             //视频课更多
             ARouter.getInstance()
                     .build(RouterPath.WebCenter.ACTIVITY_HTML)
@@ -614,8 +647,34 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
                     .navigation();
             return;
         }
+        if (id == R.id.view_talent_style_click) {
+            //达人风采tab点击
+            mViewBinding.viewPagerBottom.setCurrentItem(0);
+            return;
+        }
+
+        if (id == R.id.view_hot_news_click) {
+            //热门资讯tab点击
+            mViewBinding.viewPagerBottom.setCurrentItem(1);
+            return;
+        }
+    }
+
+    /**
+     * 切换tab样式
+     *
+     * @param position
+     */
+    private void switchTabStyle(int position) {
+        //view_talent_style_news
+        boolean isSelectFirst = position == 0;
+        mViewBinding.viewTalentStyleNews.setVisibility(isSelectFirst ? View.VISIBLE : View.GONE);
+        mViewBinding.tvTalentStyleTitle.setTextColor(getResources().getColor(isSelectFirst ? com.cooleshow.base.R.color.color_333333 : com.cooleshow.base.R.color.color_999999));
+        mViewBinding.viewTabHotNews.setVisibility(isSelectFirst ? View.GONE : View.VISIBLE);
+        mViewBinding.tvHotNewsTitle.setTextColor(getResources().getColor(isSelectFirst ? com.cooleshow.base.R.color.color_999999 : com.cooleshow.base.R.color.color_333333));
     }
 
+
     /**
      * 跳转直播课详情页面
      *
@@ -645,4 +704,13 @@ public class NewHomeFragment extends BaseMVPFragment<FragmentNewHomeLayoutBindin
         }
 
     }
+
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        if (mViewBinding != null && mViewBinding.viewPagerBottom != null) {
+            mViewBinding.viewPagerBottom.registerOnPageChangeCallback(onPageChangeCallback);
+        }
+    }
 }

+ 29 - 5
student/src/main/res/layout/fragment_new_home_layout.xml

@@ -501,7 +501,6 @@
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
 
-
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/cs_recommend_talent"
                     android:layout_width="match_parent"
@@ -566,8 +565,6 @@
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
 
-
-
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/cl_video_course"
                     android:layout_width="match_parent"
@@ -622,11 +619,11 @@
 
 
                     <androidx.recyclerview.widget.RecyclerView
-                        android:layout_marginStart="9dp"
-                        android:layout_marginEnd="9dp"
                         android:id="@+id/rv_video_course"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
+                        android:layout_marginStart="9dp"
+                        android:layout_marginEnd="9dp"
                         android:overScrollMode="never"
                         android:scrollbars="none"
                         app:layout_constraintTop_toBottomOf="@+id/tv_video_course_title" />
@@ -689,6 +686,33 @@
                         app:layout_constraintLeft_toRightOf="@+id/tv_talent_style_title"
                         app:layout_constraintTop_toTopOf="@+id/tv_talent_style_title" />
 
+                    <View
+                        android:id="@+id/view_help_line2"
+                        android:layout_width="1px"
+                        android:layout_height="1px"
+                        app:layout_constraintLeft_toRightOf="@+id/tv_talent_style_title"
+                        app:layout_constraintRight_toLeftOf="@+id/tv_hot_news_title"
+                        app:layout_constraintTop_toTopOf="@+id/tv_hot_news_title" />
+
+                    <View
+                        android:id="@+id/view_talent_style_click"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        app:layout_constraintBottom_toTopOf="@+id/view_pager_bottom"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintRight_toRightOf="@+id/view_help_line2"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                    <View
+                        android:id="@+id/view_hot_news_click"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        app:layout_constraintBottom_toTopOf="@+id/view_pager_bottom"
+                        app:layout_constraintLeft_toLeftOf="@+id/view_help_line2"
+                        app:layout_constraintRight_toRightOf="@+id/tv_hot_news_title"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+
                     <androidx.viewpager2.widget.ViewPager2
                         android:id="@+id/view_pager_bottom"
                         android:layout_width="match_parent"

+ 1 - 1
student/src/main/res/layout/item_home_talent_style_layout.xml

@@ -10,7 +10,7 @@
     android:background="@drawable/bg_white_10dp"
     android:paddingBottom="14dp">
 
-    <androidx.constraintlayout.utils.widget.ImageFilterButton
+    <ImageView
         android:id="@+id/iv_cover"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"