一个日历ListView,一行显示一个月:CalendarListview
jopen
10年前
这个项目在一个ListView中实现了一个日历。一行显示一个月,方便用户选择日期。
CalendarListview
Integration
The lib is available on Maven Central, you can find it with Gradle, please
dependencies { compile 'com.github.traex:calendarlistview:library:1.1.1' }
用法
Declare a DayPickerView inside your layout XML file:
<com.andexert.calendarlistview.library.DayPickerView android:id="@+id/pickerView" xmlns:calendar="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"/>
Next, you have to implement DatePickerController
in your Activity or your Fragment. You will have to set getMaxYear
and onDayOfMonthSelected
. The first one is the max year between the current one and this maxYear. The second one is called every time user selects a new date.
@Override public int getMaxYear() { return 2015; } @Override public void onDayOfMonthSelected(int year, int month, int day) { Log.e("Day Selected", day + " / " + month + " / " + year); }
定制
CalendarListview完全可定制:
- app:colorCurrentDay [color def:#ff999999] --> The current day is always in bold but you can change its color
- app:colorSelectedDayBackground [color def:#E75F49] --> If you click on a day, a circle indicator or a rouded rectangle indicator will be draw.
- app:colorSelectedDayText [color def:#fff2f2f2] --> This is the text color of a selected day
- app:colorPreviousDay [color def:#ff999999] --> In the current month you can choose to have a specific color for the past days
- app:colorNormalDay [color def:#ff999999] --> Default text color for a day
- app:colorMonthName [color def:#ff999999] --> Month name and year text color
- app:colorDayName [color def:#ff999999] --> Day name text color
- app:textSizeDay [dimension def:16sp] --> Font size for numeric day
- app:textSizeMonth [dimension def:16sp] --> Font size for month name
- app:textSizeDayName [dimension def:10sp] --> Font size for day name
- app:headerMonthHeight [dimension def:50dip] --> Height of month name
- app:drawRoundRect [boolean def:false] --> Draw a rounded rectangle for selected days instead of a circle
- app:selectedDayRadius [dimension def:16dip] --> Set radius if you use default circle indicator
- app:calendarHeight [dimension def:270dip] --> Height of each month/row
- app:enablePreviousDay [boolean def:true] --> Enable past days in current month
- app:startCurrentMonth [boolean def:false] --> Start listview at the current month
- app:currentDaySelected [boolean def:false] --> Select current day by default