| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 채팅방구현
- Android
- provider
- ERD툴
- FCM
- 서버배포
- 상태관리
- android pdf viewer
- 그룹채팅구현
- Flutter
- Serial
- node js
- socket.io
- erdcloud
- 계층형 테이블
- android studio
- AWS
- ERDTool
- socket통신
- androidstudio
- firebase
- BLUETOOTH
- DevExpress
- cloudmessage
- MotionLayout
- PDFViewer
- node.js
- 개발일지
- EC2
- 암호화
- Today
- Total
nueog
[Android Studio] Motion Layout을 이용한 레이아웃 동작 움직임 추가(접었다 폈다 하기) 본문
[Android Studio] Motion Layout을 이용한 레이아웃 동작 움직임 추가(접었다 폈다 하기)
nueog 2024. 4. 12. 10:58어플리케이션 개발중 기존에 x, y 좌표를 동적으로 움직여 화면 속 요소를 움직이는 동작에 한계를 느꼈다.
그래서 서치를 하던 중, Motion Layout이라는 방법을 알게되었다.
Motion Layout은 기존의 Android 레이아웃 중 하나인 Constraint Layout을 기반으로 하는 일종의 Layout이다.
https://developer.android.com/develop/ui/views/animations/motionlayout/examples
MotionLayout 예 | Views | Android Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. MotionLayout 예 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 문서에는 MotionLayout를 사용하는 방법의
developer.android.com
Android 공식문서와 여러가지 예제를 참고하여서 Touch 제스쳐를 따라 움직이며 접혔다 펴졌다 하는 레이아웃을 만들었다.
기존 레이아웃에 Motion Layout을 적용하는 방법은 다음과 같다.
1. 기존 XML 레이아웃에서 Linear 등을 ConstraintLayout으로 변경
- Convert to MotionLayout으로 ConstraintLayout -> MotionLayout을 해준다.(그럼 자동으로 바뀐다!)

2. Motion Layout으로 변경됨


3. Scene 파일 작성
- Start 동작과 End 동작을 작성해준다
- 각 동작의 duration (동작 속도) 설정 가능!
각 레이아웃의 height를 조절하는 방식으로 레이아웃 움직임 동작 추가를 했다.
Constraint Layout 이기 때문에 Constraint 조건도 같이 작성해줘야한다.

4. 코드에서 동작 추가
나의 경우에는 제스쳐가 위로 가나 or 아래로 가나를 OnTouchListener를 통해 판단해서 동작을 연결해주었다.
Motionlayout 변수에 transitionToStart()와 transitionToEnd()함수를 활용해서 코드에서 동작을 추가했다.

5. 결과
스무스한 동작 완성!
'Android Studio' 카테고리의 다른 글
| [Android Studio] Kakao Map API V2 적용 (0) | 2024.04.29 |
|---|---|
| [Android Studio][Zeplin] 앱 디자인 툴, Zeplin(제플린) (0) | 2024.04.08 |
| Json Array 다루기 (0) | 2021.07.20 |
| [Android Studio] bluetooth 사용 (0) | 2021.06.01 |
| [Android Studio] Pdf Viewer (0) | 2021.04.13 |