Notice
														
												
											
												
												
													Recent Posts
													
											
												
												
													Recent Comments
													
											
												
												
													Link
													
											
									| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
													Tags
													
											
												
												- todofication
 - Koin
 - moveToState
 - fragment
 - 카드내역 공유
 - android clean architecture
 - 올인원타이머
 - 특가알람
 - nvidia-docker
 - RX
 - java.lang.OutOfMemoryError: Java heap space
 - 안드로이드 클린 아키텍쳐
 - 타이머앱
 - 특가게시판
 - Quickly
 - kotlin
 - List
 - compileKotlin FAILED
 - 특가촌
 - recyclerview
 - 뷰 상태 저장
 - 카드 내역 공유 앱
 - RxJava
 - andorid
 - 안드로이드
 - 뷰 상태복구
 - 대학톡
 - 작성
 - Android
 - onViewCreated
 
													Archives
													
											
												
												- Today
 
- Total
 
seoft
[모듈앱] drag-and-drop-between-multiple-grid 본문
[개요]
quickly앱(https://seoft.tistory.com/30) 시나리오 중 애플리케이션 배치, 설정을 위한 페이지가 필요했고 복잡한 페이지는 모듈 단위로 만들어 다음에도 재사용 하고자 제작하게 되었다.
[결과]

[요구사항]
기본적인 홈런쳐에 있는 기능과 유사하며, 요구사항은 다음과 같다.
- 9개의 아이템을 가지고 있는 4개의 그리드에 앱배치
 - 각 그리드나 폴더 내 아이템 추가, 삭제
 - 단순이동, 그리드간 이동
 - 폴더 생성, 폴더 삭제
 - 폴더 내의 아이템 각 그리드로 이동
 
[구현 요약]
- 센터, 하단 그리드, 휴지통 위치정보 획득, 터치 정보 확보
 - 센터 그리드 한칸당 3등분으로 분배
 - 그리드에서 LongClick시 아이템 정보, 좌표 획득 후 동적으로 create, 현 터치지점 따라다니도록 구현
 - 터치 리스너로 각 터치정보에 속하는지 판단 후 진행, 중간 중간에 플로팅뷰 동적 변경, saving할 상태 관리
- 좌표 get, 3등분으로 분배한곳에 안속하는지(안속하면 retrun) 판단
 - Delete에 속하는지 판단
 - 리사이클러뷰 범위 밖인지 판단
 - Empty 판단
 - 정중앙 판단 with 폴더 insert, create
 - 0~1/3 or 2/3~1 범위 판단
 - 6번 범위시 가까운 empty index 파악 후 move
 - 하단 그리드 속하는지 판단
 - 터치 up시 삭제범위 속 or 그리드 초과범위 판단
 - 폴더, 안폴더시 배치 처리
 - 폴더이고 이동 배치 완료시 finish 처리
 - 센터, 하단 그리드 갱신
 
 - 폴더 처리시 중복사용 코드가 많아 상속을 쓰려다 초반 설계에서 잘못됬다는걸 깨닫고 편법사용
- static 변수와 같은 엑티비티 하나 더뛰어 폴더유무 판단
 
 - 폴더, Empty, 기본앱 유무를 상위 클래스를 두어 공통으로 관리
 - json list <-> object list로 preference로 관리
 
[Reference]
https://seoft.tistory.com/35?category=1066264
https://seoft.tistory.com/33?category=1066264
https://seoft.tistory.com/32?category=1066264
[Github]
https://github.com/seoft/seoft-android-libraries/tree/dev/drag-and-drop-between-multiple-grid
'개발일지' 카테고리의 다른 글
| [모듈앱] write-post-with-items (0) | 2020.05.16 | 
|---|---|
| [급식판] 앱 소개 (0) | 2020.04.16 | 
| [quickly] 앱 소개 (0) | 2020.03.01 | 
| [quickly] 개발 과정 (0) | 2020.03.01 | 
| [quickly] 개발 개요 (0) | 2020.01.05 | 
			  Comments