728x90
반응형
캘린더 뷰 커스텀에 대해 알아보던 중에 cosmo calendarview를 알게되어 한번 사용해보았다!
https://github.com/ApplikeySolutions/CosmoCalendar
1. 먼저 필요한 module 단위 build.gradle 파일에 cosmo calendarview 를 implementation 해준다
implementation 'com.github.applikeysolutions:cosmocalendar:1.0.4'
2. layout파일에 <cosmocalendar> 위젯추가해준다
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.applikeysolutions.cosmocalendar.view.CalendarView
android:id="@+id/calendar_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:connectedDayIconPosition="top"
app:currentDayIconRes="@drawable/ic_close_gray"
app:currentDaySelectedIconRes="@drawable/border_top_bottom"
app:currentDayTextColor="#f79256"
app:firstDayOfTheWeek="sunday"
app:layout_constraintTop_toTopOf="parent"
app:orientation="horizontal"
app:selectedDayBackgroundColor="#FFEACA"
app:selectedDayBackgroundEndColor="#f79256"
app:selectedDayBackgroundStartColor="#f79256"
app:selectedDayTextColor="#FFFFFF"
app:selectionType="range"
app:weekendDayTextColor="#ef4550" />
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="next"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/calendar_view" />
</androidx.constraintlayout.widget.ConstraintLayout>
cosmo calendar에서 날짜를 하나씩, 여러개, 범위 등으로 설정해서 선택할 수 있는데
- selectionType = "range" 로 설정해서 범위로 설정했다.
다음 페이지로 넘기면서 선택한 날짜를 전달하고 싶어서 버튼도 추가했다.
3. 선택한 기간을 Log와 ToastMessage로 확인할 수 있게 했다.
binding.calendarView.selectionManager=RangeSelectionManager(OnDaySelectedListener {
if(binding.calendarView.selectedDates.size<=0) return@OnDaySelectedListener
Log.d("??","${binding.calendarView.selectedDays}")
Toast.makeText(this,"${binding.calendarView.selectedDays}",Toast.LENGTH_SHORT).show()
})
728x90
반응형
'android' 카테고리의 다른 글
[데이터베이스] database / 데이터캐싱 / RoomDB란? / RoomDB구성요소 / Database/ DAO / Entity (0) | 2022.05.05 |
---|---|
[android/안드로이드] 리스트뷰 vs 리사이클러뷰 차이점, 리사이클러뷰 개념 (0) | 2022.04.23 |
[안드로이드,kotlin]constraintLayout 연습,제약,체인 (0) | 2022.03.19 |
[안드로이드 스튜디오,kotlin] ImageView 둥글게 만들기 (0) | 2022.03.16 |
안드로이드(android) 버튼 커스텀/모서리가 둥근 버튼/버튼 그림자효과/버튼 둥글게 (0) | 2022.02.17 |
댓글