오늘 구현한 것
- 두개의 리사이클러뷰 각각에 Progress bar 로 데이터 로드 상태 보여줌
- swipe represh 추가. 참고 : https://medium.com/@bluesh55/android-당겨서-새로고침-간단하게-구현하기-a42846c14c23
- 위젯 기능 추가하는 중.
일단 위젯이 생각보다 까다로운 녀석이라는 것을 이번에 처음 알게됐다.
기존 방식과는 다르게 위젯은 다른 프로세스에서 뷰를 인플레이트 하는 과정을 거치는, 기생(?)하고 있는 구조라고 한다. (참고 : http://itmir.tistory.com/551)
그리고 브로드캐스트를 받아 처리하는 방식으로 위젯 데이터가 갱신되는 것 같다.
또한 위젯을 만드는 과정이 은근히 복잡하다...!! 아래 순서는 내가 마음대로 매겨봤다.
1. res/xml 에 appwidget-provider 정의하기 (여기서 위젯에 대한 기본 설정들을 지정할 수 있다. 예를 들면 위젯 프리뷰 이미지, 사이즈 변경 모드, 위젯 데이터 갱신 시간 설정 등)
2. 위젯 xml 레이아웃 정의. 사용할 수 있는 뷰그룹, 뷰가 제한되어있다. RemoteView 라는 새로운 놈을 사용하기 때문이다..! (여기서 가장 충격적이었던게, 리사이클러뷰는 없고 리스트뷰를 사용해야한다. 나 리스트뷰 잘 모르는데...ㅠㅠ)
3. AppWidgetProvider 를 상속받은 클래스 만들기. 이친구가 브로드캐스트 리시버 클래스라고 보면 될 것 같다.
4. 매니페스트에 리시버(인텐트필터 + 메타데이터) 추가하면 끝
근데 이 복잡한 과정을 안드로이드 스튜디오에서 다해준다 ^_^ new -> Widget 하면 끝!
하지만 나는 그냥 단순한 리스트를 뿌려주기만 하면 되는데, 내가 생각한 것보다 좀 더 복잡한 것을 구현해야할 것 같다.
옛날 자료지만 영어를 못읽어서 일단 참고하자 : http://blog.daum.net/_blog/BlogTypeView.do?blogid=0r2u1&articleno=87
그리고 공식문서 : https://developer.android.com/guide/topics/appwidgets/
고민해야할 것
- 위젯에 리스트뷰 추가하기
'Diary > 삽질노트' 카테고리의 다른 글
[Android] TextView Typeface 관련 궁금증 - 미해결 (0) | 2021.01.25 |
---|---|
[Android] Thread-safe 하지 않은 SimpleDateFormat (0) | 2020.09.08 |
[18.12.30] 뉴스 크롤링 앱을 만들면서...(2) (0) | 2018.12.30 |
[18.12.26-27] 뉴스 크롤링 앱을 만들면서... (0) | 2018.12.27 |
[18.12.21] 깃헙블로그를 잃다 (0) | 2018.12.21 |