Browse Source

优化课表样式问题

Pq 9 months ago
parent
commit
7c7bfb65c4

+ 23 - 0
student/src/main/java/com/cooleshow/student/adapter/CourseTableListAdapter.kt

@@ -3,12 +3,15 @@ package com.cooleshow.student.adapter
 import android.annotation.SuppressLint
 import android.text.TextUtils
 import android.view.View
+import android.view.ViewGroup
 import android.widget.ImageView
 import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
 import com.chad.library.adapter.base.BaseQuickAdapter
 import com.chad.library.adapter.base.viewholder.BaseViewHolder
 import com.cooleshow.base.ext.setVisible
 import com.cooleshow.base.utils.GlideUtils
+import com.cooleshow.base.utils.SizeUtils
 import com.cooleshow.base.utils.TimeUtils
 import com.cooleshow.base.utils.UiUtils
 import com.cooleshow.student.R
@@ -151,6 +154,26 @@ class CourseTableListAdapter(layoutResId: Int) :
                 tvCourseStatusBt.setTextColor(context.resources.getColor(com.cooleshow.base.R.color.color_2dc7aa))
             }
         }
+
+        val csRoot = baseViewHolder.getView<ViewGroup>(R.id.cs_root);
+        val layoutParams: RecyclerView.LayoutParams =
+            csRoot.layoutParams as RecyclerView.LayoutParams
+        if (this.data.size - 1 != baseViewHolder.layoutPosition) {
+            layoutParams.setMargins(
+                SizeUtils.dp2px(14f),
+                SizeUtils.dp2px(12f),
+                SizeUtils.dp2px(14f),
+                SizeUtils.dp2px(0f)
+            )
+        } else {
+            layoutParams.setMargins(
+                SizeUtils.dp2px(14f),
+                SizeUtils.dp2px(12f),
+                SizeUtils.dp2px(14f),
+                SizeUtils.dp2px(12f)
+            )
+        }
+        csRoot.layoutParams = layoutParams;
     }
 
     private fun isCanShowEnterBt(data: CourseTableDataBean.StudentListBean): Boolean {

+ 17 - 4
student/src/main/java/com/cooleshow/student/widgets/SimpleWeekView.java

@@ -8,6 +8,7 @@ import android.graphics.RectF;
 import android.view.View;
 
 import com.cooleshow.base.utils.SizeUtils;
+import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.student.R;
 import com.haibin.calendarview.Calendar;
 import com.haibin.calendarview.WeekView;
@@ -102,7 +103,7 @@ public class SimpleWeekView extends WeekView {
                 canvas.drawText("有课", cx, mItemHeight - spaceMarginBottom, mSchemeTextPaint);
             }
         } else if (hasScheme) {
-            canvas.drawText(calendar.isCurrentDay() ? "今" : String.valueOf(calendar.getDay()),
+            canvas.drawText(isToday(calendar) ? "今" : String.valueOf(calendar.getDay()),
                     cx,
                     baselineY,
                     getPaint(calendar));
@@ -110,13 +111,25 @@ public class SimpleWeekView extends WeekView {
             mSchemeTextPaint.setColor(schemeTextColor);
             canvas.drawText("有课", cx, mItemHeight - spaceMarginBottom, mSchemeTextPaint);
         } else {//最好绘制普通文本
-            canvas.drawText(calendar.isCurrentDay() ? "今" : String.valueOf(calendar.getDay()), cx, baselineY,
-                    calendar.isCurrentDay() ? mCurDayTextPaint :
-                            calendar.isCurrentMonth() ? mCurMonthTextPaint : mOtherMonthTextPaint);
+//            canvas.drawText(calendar.isCurrentDay() ? "今" : String.valueOf(calendar.getDay()), cx, baselineY,
+//                    calendar.isCurrentDay() ? mCurDayTextPaint :
+//                            calendar.isCurrentMonth() ? mCurMonthTextPaint : mOtherMonthTextPaint);
+            canvas.drawText(isToday(calendar) ? "今" : String.valueOf(calendar.getDay()), cx, baselineY,
+                    getPaint(calendar));
         }
 
     }
 
+    private boolean isToday(Calendar calendar) {
+        try {
+            boolean today = TimeUtils.isToday(calendar.getTimeInMillis());
+            return today;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
     private Paint getPaint(Calendar calendar) {
         if (calendar.isCurrentDay()) {
             //当前日期

+ 1 - 0
student/src/main/res/layout/item_course_table_layout.xml

@@ -7,6 +7,7 @@
     android:layout_marginStart="14dp"
     android:layout_marginTop="12dp"
     android:layout_marginEnd="14dp"
+    android:id="@+id/cs_root"
     android:background="@drawable/bg_white_10dp"
     android:paddingStart="11dp"
     android:paddingEnd="11dp"

+ 27 - 3
teacher/src/main/java/com/cooleshow/teacher/adapter/CourseTableListAdapter.kt

@@ -3,18 +3,19 @@ package com.cooleshow.teacher.adapter
 import android.annotation.SuppressLint
 import android.text.TextUtils
 import android.view.View
+import android.view.ViewGroup
 import android.widget.ImageView
 import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
 import com.chad.library.adapter.base.BaseQuickAdapter
 import com.chad.library.adapter.base.viewholder.BaseViewHolder
 import com.cooleshow.base.ext.setVisible
 import com.cooleshow.base.utils.GlideUtils
-import com.cooleshow.base.utils.TimeUtils
+import com.cooleshow.base.utils.SizeUtils
 import com.cooleshow.base.utils.UiUtils
 import com.cooleshow.teacher.R
 import com.cooleshow.teacher.bean.CourseTableDataBean
 import com.cooleshow.teacher.helper.CourseHelper
-import kotlin.math.abs
 
 /**
  * Author by pq, Date on 2022/4/21.
@@ -145,7 +146,11 @@ class CourseTableListAdapter(layoutResId: Int) :
 
             COMPLETE -> {
                 //已完成
-                if (TextUtils.equals(VIP_COURSE, data?.courseType) || TextUtils.equals(OTHER_COURSE, data?.courseType)) {
+                if (TextUtils.equals(VIP_COURSE, data?.courseType) || TextUtils.equals(
+                        OTHER_COURSE,
+                        data?.courseType
+                    )
+                ) {
                     tvCourseStatusBt.setVisible(true)
                 } else {
                     //直播课隐藏
@@ -165,6 +170,25 @@ class CourseTableListAdapter(layoutResId: Int) :
                 tvCourseStatusBt.setTextColor(context.resources.getColor(com.cooleshow.base.R.color.color_2dc7aa))
             }
         }
+        val csRoot = baseViewHolder.getView<ViewGroup>(R.id.cs_root);
+        val layoutParams: RecyclerView.LayoutParams =
+            csRoot.layoutParams as RecyclerView.LayoutParams
+        if (this.data.size - 1 != baseViewHolder.layoutPosition) {
+            layoutParams.setMargins(
+                SizeUtils.dp2px(14f),
+                SizeUtils.dp2px(12f),
+                SizeUtils.dp2px(14f),
+                SizeUtils.dp2px(0f)
+            )
+        } else {
+            layoutParams.setMargins(
+                SizeUtils.dp2px(14f),
+                SizeUtils.dp2px(12f),
+                SizeUtils.dp2px(14f),
+                SizeUtils.dp2px(12f)
+            )
+        }
+        csRoot.layoutParams = layoutParams;
     }
 
     fun setConfigData(sysConfig: CourseTableDataBean.SysConfigBean?) {

+ 17 - 4
teacher/src/main/java/com/cooleshow/teacher/widgets/SimpleWeekView.java

@@ -8,6 +8,7 @@ import android.graphics.RectF;
 import android.view.View;
 
 import com.cooleshow.base.utils.SizeUtils;
+import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.teacher.R;
 import com.haibin.calendarview.Calendar;
 import com.haibin.calendarview.WeekView;
@@ -102,7 +103,7 @@ public class SimpleWeekView extends WeekView {
                 canvas.drawText("有课", cx, mItemHeight - spaceMarginBottom, mSchemeTextPaint);
             }
         } else if (hasScheme) {
-            canvas.drawText(calendar.isCurrentDay() ? "今" : String.valueOf(calendar.getDay()),
+            canvas.drawText(isToday(calendar) ? "今" : String.valueOf(calendar.getDay()),
                     cx,
                     baselineY,
                     getPaint(calendar));
@@ -110,13 +111,25 @@ public class SimpleWeekView extends WeekView {
             mSchemeTextPaint.setColor(schemeTextColor);
             canvas.drawText("有课", cx, mItemHeight - spaceMarginBottom, mSchemeTextPaint);
         } else {//最好绘制普通文本
-            canvas.drawText(calendar.isCurrentDay() ? "今" : String.valueOf(calendar.getDay()), cx, baselineY,
-                    calendar.isCurrentDay() ? mCurDayTextPaint :
-                            calendar.isCurrentMonth() ? mCurMonthTextPaint : mOtherMonthTextPaint);
+//            canvas.drawText(calendar.isCurrentDay() ? "今" : String.valueOf(calendar.getDay()), cx, baselineY,
+//                    calendar.isCurrentDay() ? mCurDayTextPaint :
+//                            calendar.isCurrentMonth() ? mCurMonthTextPaint : mOtherMonthTextPaint);
+            canvas.drawText(isToday(calendar) ? "今" : String.valueOf(calendar.getDay()), cx, baselineY,
+                    getPaint(calendar));
         }
 
     }
 
+    private boolean isToday(Calendar calendar) {
+        try {
+            boolean today = TimeUtils.isToday(calendar.getTimeInMillis());
+            return today;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
     private Paint getPaint(Calendar calendar) {
         if (calendar.isCurrentDay()) {
             //当前日期

+ 1 - 0
teacher/src/main/res/layout/item_course_table_layout.xml

@@ -7,6 +7,7 @@
     android:layout_marginStart="14dp"
     android:layout_marginTop="12dp"
     android:layout_marginEnd="14dp"
+    android:id="@+id/cs_root"
     android:background="@drawable/bg_white_10dp"
     android:paddingStart="11dp"
     android:paddingEnd="11dp"