如何使用水平滚动周视图制作日历视图

Mwa*_*was 0 android calendarview

我正在尝试使日历视图与此类似。一种具有水平滚动周视图,以及选定日期以下的事件列表。

我试过使用这个库https://github.com/prolificinteractive/material-calendarview,但是外观不一样。由于日期名称和日期相距太远,因此日历会占用大量屏幕空间。我如何在下面制作类似的图片?

谢谢

在此处输入图片说明

Moa*_*seh 5

使用这个程式库,

compile 'devs.mulham.horizontalcalendar:horizontalcalendar:1.1.7'
Run Code Online (Sandbox Code Playgroud)

而这在XML

  <devs.mulham.horizontalcalendar.HorizontalCalendarView
                            android:id="@+id/calendarView"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:background="#FAFAFA"
                            app:selectedDateBackground="#00ffffff"
                            app:selectorColor="#c62828"
                            app:textColorNormal="#bababa"
                            app:textColorSelected="@color/blue_color"
                            app:textSizeDayName="20sp"
                            app:textSizeDayNumber="20sp" />
Run Code Online (Sandbox Code Playgroud)

还有Java

private HorizontalCalendar horizontalCalendar;

   Calendar endDate = Calendar.getInstance();
        endDate.add(Calendar.MONTH, 1);
        Calendar startDate = Calendar.getInstance();
        startDate.add(Calendar.MONTH, -1);

        horizontalCalendar = new HorizontalCalendar.Builder(root, R.id.calendarView)
                .startDate(startDate.getTime())
                .endDate(endDate.getTime())
                .datesNumberOnScreen(5)
                .dayNameFormat("EEE")
                .dayNumberFormat("dd")
                .monthFormat("MMM")
                .textSize(14f, 24f, 14f)
                .showDayName(true)
                .showMonthName(true)

                .build();

        horizontalCalendar.setCalendarListener(new HorizontalCalendarListener() {
            @Override
            public void onDateSelected(Date date, int position) {
//                Toast.makeText(getContext(), DateFormat.getDateInstance().format(date) + " is selected!", Toast.LENGTH_SHORT).show();
            }

        });
Run Code Online (Sandbox Code Playgroud)