2021년 2월 4일 목요일

[Android] MotionLayout

MotionLayout 구글이 또 억지로 뭔가 만들었네.

androidX의 Constraintlayout에 포함된 MotionLayout기능으로 앱의 요소들을 좀더 동적으로 반응하도록 하는게 가능하게 해준다.

터치,스와이프에 반응하게도 되고, 시작과 끝 지점에서 모션의 제어 (시간, 움직임위치,키프레임등)도 되고 , 시작과 끝부분에 특정 값이 변하도록 속성(set메소드생성하여)도 지정가능하다.

1.일단 간단하게 새로운 프로젝트에 생성된 activity_main.xml를 layout 편집기에서 열고  오른쪽 버튼을 눌러서 "convert to motionlayout"을 선택하면 xml 폴더에 activity_main_scene.xml이 생성된다.

androidx.constraintlayout.widget.ConstraintLayout -> androidx.constraintlayout.motion.widget.MotionLayout
2.레이아웃의 편집기를 보면 도시락통(?) 3개가 보이고 왼쪽이 모션레이아웃이 적용된놈, 오른쪽 두개가 모션의 시작과 끝일것같은 놈들.
3.시작놈을 선택후, 레이아웃의 요소의 위치를 바꾸어 보고, 끝놈을 선택후 위치를 바꾸자.
4.탭바에 손가락(+)모양이 있는데 이를 선택하여 클릭에 대응할건지, 스와이프에 대응할건지 선택할수 있다.
https://github.com/sugoigroup/motionlayoutexample/commit/fe8de2b5657029837f8ad55a7428728bacb27202
시작과 끝 속성에는
<CustomAttribute>

motion:customColorValue - 색상
motion:customIntegerValue - 정수
motion:customFloatValue - 부동수
motion:customStringValue - 문자열
motion:customDimension - 측정기준
motion:customBoolean - 부울

키프레임에서는
 <KeyAttribute>

visibility
alpha
elevation
rotation
scale
translation

https://github.com/android/views-widgets-samples/tree/master/ConstraintLayoutExamples

https://kangmin1012.tistory.com/36?category=879935

















androidx.constraintlayout.widget.ConstraintLayout -> androidx.constraintlayout.motion.widget.MotionLayout


0 comments:

댓글 쓰기