values-v21 vaules에 각각 styles등록하여 버전별 동작가능하게
머티리얼 디자인 지원 라이브러리 appbarlayout collapsingtoolbarlayout
coordinatorlayout floatingactionbutton navigatorview snackbar tablayout
textinputlayout
5.0롤리팝api21↑ Theme.Material 지원 <style name="AppTheme"
parent="android:Theme.Material">...</style>
v7 appcompat Theme.AppCompat 테마 이용시 머티리얼 디자인 테마 적용
(edittext spinner checkbox radiobutton checkedtextview switchcompat)
api21 미만 불가한 기능
(액티비티 전환, reveal애니메이션, elevation shadow, ripple event, 곡선 모션)
Theme.Material 사용시 Ripple Effect 적용됨
android:selectableItemBackground도 마찬가지
Drawable에 리플 이펙트 적용
<ripple xmlns~ android:color="@color/accent_dark"><item>
<shape android:shape="oval">
<solid android:color="?android:colorAsscent"/>
</shape></item></ripple>
터치 포인트에 리플 이펙트 시작
drawableHotspotChanged콜백 Drawable에 터치 위치 전달
오픈소스 리플 이펙트
https://github.com/traex/RippleEffect
https://github.com/balysv/material-ripple
팔레트 Pallette p = Pallette.from(bitmap).generate();
p.getVibrantSwatch().getRgb();
vibrant 선명한 muted 부드러운
support design
implementation 'com.android.support:design:23.2.1'
NavigationView(좌측 메뉴)
tablayout(탭레이아웃 viewpager와 사용권장)
toolbar(상단액션바)
coordinatorlayout(스크롤 뷰 위치 크기 동적 관리 ex콜랩스 툴바)
<coordinatorlayout><appbarlayout><collapsingtoolbarlayout>
<toolbar/> <include layout""/>
</collapsingtoolbarlayout></appbarlayout></coordinatorlayout>
appbarlayout의 자식요소(collapsingtoolbarlayout)에는 app:layout_scrollFlags를 설정하여 스크롤 시 동작 지정가능(tech12/coordinatorLayout02)
scroll|exitUntilCollapsed 아래로 minHeight까지 작아짐 위로 maxHeight까지
scroll|enterAlways 아래로 minHeight관계없이 사라짐 위로 바로 표시(퀵 리턴)
scroll|enterAlwaysCollapsed 아래로 minHeight관계없이 사라짐 위에서 당기면 표시
floatingactionbutton(둥근버튼) snackbar(하단 팝업 토스트)
floatingactionbutton
app:layout_anchor="@id/app_bar"
app:layout_anchorGravity="bottom|end" 위치 지정
앱바가 최소 크기에 가까워지면 fab도 숨겨짐