Browse Source

1.webview页面禁用底部导航栏

王鹏鹏 2 years ago
parent
commit
68cf563706

+ 1 - 0
.idea/misc.xml

@@ -102,6 +102,7 @@
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_train_content.xml" value="0.33808844507845937" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/fragment_train_report.xml" value="0.22826086956521738" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_course_treatment.xml" value="0.1" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_date.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_free_training.xml" value="0.8800000000000001" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_free_training_list.xml" value="0.8800000000000001" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/layout/item_free_training_type.xml" value="0.536" />

+ 16 - 0
workbenches/src/main/java/com/yingyang/workbenches/adapter/DateAdapter.kt

@@ -0,0 +1,16 @@
+package com.yingyang.workbenches.adapter
+
+import com.yingyang.workbenches.R
+import com.yingyang.workbenches.databinding.ItemDateBinding
+import com.yingyang.workbenches.entity.DayBean
+import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
+
+/**
+ * 日历adapter
+ */
+class DateAdapter(override val layoutId: Int = R.layout.item_date) :
+    BaseDataBindingAdapter<DayBean, ItemDateBinding>() {
+    override fun onBindViewHolder(binding: ItemDateBinding, item: DayBean, position: Int) {
+        binding.data = item
+    }
+}

+ 101 - 2
workbenches/src/main/java/com/yingyang/workbenches/datamonitor/DataMonitorFragment.kt

@@ -1,10 +1,15 @@
 package com.yingyang.workbenches.datamonitor
 
+import androidx.recyclerview.widget.GridLayoutManager
+import com.yingyang.workbenches.adapter.DateAdapter
 import com.yingyang.workbenches.databinding.FragmentDataMonitorBinding
+import com.yingyang.workbenches.entity.DayBean
 import com.yingyangfly.baselib.base.BaseFragment
 import com.yingyangfly.baselib.utils.RxBusCodes
+import com.yingyangfly.baselib.utils.User
 import gorden.rxbus2.Subscribe
 import gorden.rxbus2.ThreadMode
+import java.text.SimpleDateFormat
 import java.util.*
 
 /**
@@ -13,10 +18,15 @@ import java.util.*
 class DataMonitorFragment : BaseFragment<FragmentDataMonitorBinding>() {
 
     private var calendar: Calendar? = null
-
+    private var dataList = mutableListOf<DayBean>()
+    private val dateAdapter by lazy { DateAdapter() }
 
     override fun initViews() {
-
+        binding {
+            rvDate.layoutManager = GridLayoutManager(mContext, 7)
+            rvDate.adapter = dateAdapter
+            dateAdapter.setData(dataList)
+        }
     }
 
     override fun initListener() {
@@ -25,6 +35,8 @@ class DataMonitorFragment : BaseFragment<FragmentDataMonitorBinding>() {
 
     override fun initData() {
         calendar = Calendar.getInstance()
+        binding.tvDate.text = User.getNowDay()
+        setNowDate()
     }
 
     /**
@@ -35,8 +47,95 @@ class DataMonitorFragment : BaseFragment<FragmentDataMonitorBinding>() {
 
     }
 
+    /**
+     * 设置日历数据
+     */
     private fun setNowDate() {
+        dataList.clear()
+        // 得到本月一号的星期索引
+        // 索引从 1 开始,第一个为星期日,减1是为了与星期对齐,如星期一对应索引1,星期二对应索引二
+        calendar!![Calendar.DAY_OF_MONTH] = 1
+        var weekIndex = calendar!![Calendar.DAY_OF_WEEK] - 1
+        // 将日期设为上个月
+        calendar!![Calendar.MONTH] = calendar!![Calendar.MONTH] - 1
+        val preMonthDays: Int = getMonth(
+            calendar!![Calendar.MONTH] + 1,
+            calendar!![Calendar.YEAR]
+        )
+        // 拿到上一个月的最后几天的天数
+        for (i in 0 until weekIndex) {
+            val bean = DayBean()
+            bean.year = calendar!![Calendar.YEAR]
+            bean.month = calendar!![Calendar.MONTH] + 1
+            bean.day = preMonthDays - weekIndex + i + 1
+            bean.isCurrentDay = false
+            bean.isCurrentMonth = false
+            dataList.add(bean)
+        }
+        // 将日期设为当月
+        calendar!![Calendar.MONTH] = calendar!![Calendar.MONTH] + 1
+        val currentDays = getMonth(
+            calendar!![Calendar.MONTH] + 1,
+            calendar!![Calendar.YEAR]
+        )
+        // 拿到当月的天数
+        for (i in 0 until currentDays) {
+            val bean = DayBean()
+            bean.year = calendar!![Calendar.YEAR]
+            bean.month = calendar!![Calendar.MONTH] + 1
+            bean.day = i + 1
+            // 当前日期
+            val nowDate: String =
+                getFormatTime("yyyy-M-d", Calendar.getInstance().time)
+            // 选择的日期
+            val selectDate: String =
+                getFormatTime("yyyy-M-", calendar!!.time) + (i + 1)
+            // 假如相等的话,那么就是今天的日期了
+            if (nowDate.contentEquals(selectDate)) {
+                bean.isCurrentDay = true
+            } else {
+                bean.isCurrentDay = false
+            }
+            bean.isCurrentMonth = true
+            dataList.add(bean)
+        }
+
+        // 拿到下个月第一周的天数
+        // 先拿到下个月第一天的星期索引
+        // 之前设为了1号,所以将日历对象的月数加 1 就行了
+        calendar!![Calendar.MONTH] = calendar!![Calendar.MONTH] + 1
+        weekIndex = calendar!![Calendar.DAY_OF_WEEK] - 1
+        for (i in 0 until 7 - weekIndex) {
+            val bean = DayBean()
+            bean.year = calendar!![Calendar.YEAR]
+            bean.month = calendar!![Calendar.MONTH] + 1
+            bean.day = i + 1
+            bean.isCurrentDay = false
+            bean.isCurrentMonth = false
+            dataList.add(bean)
+        }
+        dateAdapter.setData(dataList)
+        // 最后将日期设为当月
+        calendar!![Calendar.MONTH] = calendar!![Calendar.MONTH] - 1
+    }
+
+    // 传入年和月得出当月的天数
+    fun getMonth(m: Int, y: Int): Int {
+        return when (m) {
+            2 -> if (isRunYear(y)) 29 else 28
+            4, 6, 9, 11 -> 30
+            else -> 31
+        }
+    }
+
+    // 判断是否为闰年
+    fun isRunYear(y: Int): Boolean {
+        return y % 4 == 0 && y % 100 != 0 || y % 400 == 0
+    }
 
+    // 格式化时间,设置时间很方便,也比较简单,学的很快
+    fun getFormatTime(p: String, t: Date?): String {
+        return SimpleDateFormat(p, Locale.CHINESE).format(t)
     }
 
 }

+ 60 - 0
workbenches/src/main/java/com/yingyang/workbenches/entity/DayBean.java

@@ -0,0 +1,60 @@
+package com.yingyang.workbenches.entity;
+
+/**
+ * 日历bean
+ *
+ * @author 王鹏鹏
+ */
+public class DayBean {
+    private int day;
+    private int month;
+    private int year;
+    // 是否为当前月
+    private boolean currentMonth;
+    // 是否为今天
+    private boolean currentDay;
+
+    public int getDay() {
+        return day;
+    }
+
+    public void setDay(int day) {
+        this.day = day;
+    }
+
+    public int getMonth() {
+        return month;
+    }
+
+    public void setMonth(int month) {
+        this.month = month;
+    }
+
+    public int getYear() {
+        return year;
+    }
+
+    public void setYear(int year) {
+        this.year = year;
+    }
+
+    public boolean isCurrentMonth() {
+        return currentMonth;
+    }
+
+    public void setCurrentMonth(boolean currentMonth) {
+        this.currentMonth = currentMonth;
+    }
+
+    public boolean isCurrentDay() {
+        return currentDay;
+    }
+
+    public void setCurrentDay(boolean currentDay) {
+        this.currentDay = currentDay;
+    }
+
+    public String getNowDay() {
+        return String.valueOf(getDay());
+    }
+}

+ 1 - 0
workbenches/src/main/res/layout/fragment_data_monitor.xml

@@ -70,6 +70,7 @@
                 android:id="@+id/weekLayoutLeft"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/divider_21px"
                 android:orientation="horizontal"
                 app:layout_constraintLeft_toLeftOf="parent"
                 app:layout_constraintRight_toRightOf="parent"

+ 31 - 0
workbenches/src/main/res/layout/item_date.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <data>
+
+        <variable
+            name="data"
+            type="com.yingyang.workbenches.entity.DayBean" />
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@{data.getNowDay()}"
+            android:textColor="@color/color_FF9FA5B4"
+            android:textSize="@dimen/divider_24px"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</layout>