Browse Source

feat: 🍥 主界面添加日历组件

master
niushuai233 1 year ago
parent
commit
483614cc80
  1. 48
      app/src/main/java/cc/niushuai/dididone/ui/calendar/CalendarFragment.java
  2. 10
      app/src/main/res/drawable/bg_miui10.xml
  3. 79
      app/src/main/res/layout/fragment_calendar.xml

48
app/src/main/java/cc/niushuai/dididone/ui/calendar/CalendarFragment.java

@ -1,6 +1,7 @@
package cc.niushuai.dididone.ui.calendar; package cc.niushuai.dididone.ui.calendar;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -10,6 +11,15 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import com.necer.calendar.BaseCalendar;
import com.necer.entity.CalendarDate;
import com.necer.entity.Lunar;
import com.necer.enumeration.DateChangeBehavior;
import com.necer.listener.OnCalendarChangedListener;
import com.necer.utils.CalendarUtil;
import org.joda.time.LocalDate;
import cc.niushuai.dididone.databinding.FragmentCalendarBinding; import cc.niushuai.dididone.databinding.FragmentCalendarBinding;
public class CalendarFragment extends Fragment { public class CalendarFragment extends Fragment {
@ -24,11 +34,45 @@ public class CalendarFragment extends Fragment {
binding = FragmentCalendarBinding.inflate(inflater, container, false); binding = FragmentCalendarBinding.inflate(inflater, container, false);
View root = binding.getRoot(); View root = binding.getRoot();
final TextView textView = binding.textHome;
calendarViewModel.getText().observe(getViewLifecycleOwner(), textView::setText); setListeners();
return root; return root;
} }
private void setListeners() {
// 日历选择变更事件
setCalendarChangeListener();
}
/**
* 日历选择变更事件
*/
private void setCalendarChangeListener() {
binding.miui10Calendar.setOnCalendarChangedListener(new OnCalendarChangedListener() {
@Override
public void onCalendarChange(BaseCalendar baseCalendar, int year, int month, LocalDate localDate, DateChangeBehavior dateChangeBehavior) {
binding.tvResult.setText(year + "年" + month + "月" + " 当前页面选中 " + localDate);
Log.d(getTag(), " 当前页面选中 " + localDate);
Log.d(getTag(), " dateChangeBehavior " + dateChangeBehavior);
Log.e(getTag(), "baseCalendar::" + baseCalendar);
if (localDate != null) {
CalendarDate calendarDate = CalendarUtil.getCalendarDate(localDate);
Lunar lunar = calendarDate.lunar;
binding.tvData.setText(localDate.toString("yyyy年MM月dd日"));
binding.tvDesc.setText(lunar.chineseEra + lunar.animals + "年" + lunar.lunarMonthStr + lunar.lunarDayStr);
} else {
binding.tvData.setText("");
binding.tvData.setText("");
}
}
});
}
@Override @Override
public void onDestroyView() { public void onDestroyView() {
super.onDestroyView(); super.onDestroyView();

10
app/src/main/res/drawable/bg_miui10.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners
android:radius="10dp" />
<stroke
android:width="1dp"
android:color="@android:color/white" />
</shape>

79
app/src/main/res/layout/fragment_calendar.xml

@ -6,17 +6,76 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".ui.calendar.CalendarFragment"> tools:context=".ui.calendar.CalendarFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView <TextView
android:id="@+id/text_home" android:id="@+id/tv_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="15dp" />
<com.necer.view.WeekBar
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_alignParentBottom="true"
android:layout_marginTop="8dp" android:textColor="#666666" />
android:layout_marginEnd="8dp"
android:textAlignment="center"
android:textSize="20sp" <com.necer.calendar.Miui10Calendar
app:layout_constraintBottom_toBottomOf="parent" android:id="@+id/miui10Calendar"
app:layout_constraintEnd_toEndOf="parent" android:layout_width="match_parent"
app:layout_constraintStart_toStartOf="parent" android:layout_height="match_parent"
app:layout_constraintTop_toTopOf="parent" /> app:showNumberBackground="true"
app:solarTextBold="true">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/darker_gray">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="15dp"
android:background="@drawable/bg_miui10"
android:orientation="vertical"
android:padding="15dp">
<TextView
android:id="@+id/tv_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:textColor="#333333"
android:textSize="13sp" />
<TextView
android:id="@+id/tv_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text=""
android:textColor="#666666"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</com.necer.calendar.Miui10Calendar>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
Loading…
Cancel
Save