From 6e7cbba7db21dcbd529069a1876c3c57619703b2 Mon Sep 17 00:00:00 2001 From: niushuai233 Date: Tue, 5 Dec 2023 17:05:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20:page=5Ffacing=5Fup:=E4=BD=BF=E7=94=A8Ca?= =?UTF-8?q?lendarView=E7=BB=84=E4=BB=B6=E6=9B=BF=E4=BB=A3=E5=8E=9F?= =?UTF-8?q?=E7=94=9F=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../didicheck/ui/main/home/HomeFragment.java | 77 ++++++++++++++----- app/src/main/res/layout/fragment_home.xml | 18 ++++- app/src/main/res/layout/item_list.xml | 24 ++++-- 3 files changed, 90 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/cc/niushuai/didicheck/ui/main/home/HomeFragment.java b/app/src/main/java/cc/niushuai/didicheck/ui/main/home/HomeFragment.java index 45adcf3..c921e81 100644 --- a/app/src/main/java/cc/niushuai/didicheck/ui/main/home/HomeFragment.java +++ b/app/src/main/java/cc/niushuai/didicheck/ui/main/home/HomeFragment.java @@ -6,7 +6,6 @@ import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.CalendarView; import android.widget.TextView; import androidx.annotation.NonNull; @@ -19,6 +18,9 @@ import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.haibin.calendarview.Calendar; +import com.haibin.calendarview.CalendarView; + import org.reactivestreams.Subscription; import java.util.Collections; @@ -62,29 +64,42 @@ public class HomeFragment extends Fragment { fragmentHomeBinding = FragmentHomeBinding.inflate(inflater, container, false); ConstraintLayout rootLayout = fragmentHomeBinding.getRoot(); - TextView homeTitleTextView = fragmentHomeBinding.homeTitleTextView; - homeTitleTextView.setGravity(Gravity.CENTER); - homeViewModel.getTitle().observe(getViewLifecycleOwner(), value -> homeTitleTextView.setText(value)); - homeTitleTextView.setText("未完待续..."); - homeViewModel.setSelectDate(new Date()); - - CalendarView homeMainCalendar = fragmentHomeBinding.homeMainCalendar; - homeMainCalendar.setDate(DateUtil.date().getTime()); - homeMainCalendar.setOnDateChangeListener((calendarView, year, month, day) -> { - long date = calendarView.getDate(); - String format = StrUtil.format("{}-{}-{}", year, month + 1, day); - Log.d("calendar_change", "tag = " + DateUtil.date(date).toDateStr() + ", ==>" + format); + initTextView(); - // 缓存选择的日期 - homeViewModel.setSelectDate(DateUtil.parseDate(format)); + initCalendarView(); - // 刷新数据 - refreshDataListByDate(format); - }); + initVerticalCalendarView(); // 默认查一次今天的数据 refreshDataListByDate(DateUtil.formatDate(new Date())); + initRecyleView(); + + return rootLayout; + } + + private void initVerticalCalendarView() { + CalendarView homeMainCalendar = fragmentHomeBinding.homeMainCalendar; +// homeMainCalendar.setSchemeDate(); + homeMainCalendar.setOnCalendarSelectListener(new CalendarView.OnCalendarSelectListener() { + @Override + public void onCalendarOutOfRange(Calendar calendar) { + Log.d("onCalendarOutOfRange", "" + calendar.getTimeInMillis()); + } + + @Override + public void onCalendarSelect(Calendar calendar, boolean isClick) { + Log.d("onCalendarSelect", isClick + "---" + calendar.getTimeInMillis()); + String dateStr = StrUtil.format("{}-{}-{}", calendar.getYear(), calendar.getMonth(), calendar.getDay()); + homeViewModel.setSelectDate(DateUtil.parseDate(dateStr)); + + // 刷新数据 + refreshDataListByDate(dateStr); + } + }); + } + + private void initRecyleView() { RecyclerView homeDataZoneRecyclerView = fragmentHomeBinding.homeDataZoneRecyclerView; homeDataZoneRecyclerView.addItemDecoration(new DividerItemDecoration(this.getActivity(), DividerItemDecoration.VERTICAL)); DefaultItemAnimator itemAnimator = new DefaultItemAnimator(); @@ -96,8 +111,32 @@ public class HomeFragment extends Fragment { fragmentHomeBinding.homeDataZoneRecyclerView.setAdapter(homeRecycleViewAdapter); LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); fragmentHomeBinding.homeDataZoneRecyclerView.setLayoutManager(layoutManager); + } - return rootLayout; + private void initCalendarView() { +// CalendarView homeMainCalendar = fragmentHomeBinding.homeMainCalendar; +// homeMainCalendar.setDate(DateUtil.date().getTime()); +// homeMainCalendar.setOnDateChangeListener((calendarView, year, month, day) -> { +// long date = calendarView.getDate(); +// String format = StrUtil.format("{}-{}-{}", year, month + 1, day); +// Log.d("calendar_change", "tag = " + DateUtil.date(date).toDateStr() + ", ==>" + format); +// +// // 缓存选择的日期 +// homeViewModel.setSelectDate(DateUtil.parseDate(format)); +// +// // 刷新数据 +// refreshDataListByDate(format); +// }); + } + + private void initTextView() { + TextView homeTitleTextView = fragmentHomeBinding.homeTitleTextView; + homeTitleTextView.setGravity(Gravity.CENTER); + homeViewModel.getTitle().observe(getViewLifecycleOwner(), value -> homeTitleTextView.setText(value)); + homeTitleTextView.setText("未完待续..."); + + homeViewModel.getSelectDate().observe(getViewLifecycleOwner(), value -> homeTitleTextView.setText(DateUtil.formatDate(value))); + homeViewModel.setSelectDate(new Date()); } @Override diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 7964675..2fdfba6 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -15,8 +15,9 @@ app:layout_constraintHeight_percent="0.05" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + <!–日历组件view–> +--> + + + + + + app:layout_constraintTop_toBottomOf="@+id/home_main_calendar" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_list.xml b/app/src/main/res/layout/item_list.xml index 99c321f..8ef55c9 100644 --- a/app/src/main/res/layout/item_list.xml +++ b/app/src/main/res/layout/item_list.xml @@ -4,22 +4,32 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + + style="@style/TextAppearance.Material3.BodyLarge" + android:layout_marginStart="10dp" + android:layout_marginTop="30dp" + android:textSize="20sp" + app:layout_constraintLeft_toRightOf="@+id/item_list_icon" + app:layout_constraintStart_toStartOf="@+id/item_list_icon" />