NavigationView 상단 그림자
- 안드로이드 기본 메뉴를 사용중에 아래와 같은 요구 사항이 들어 올때 처리 방법
- for tag: NavigationView remove shadow
- 처음에는 DrawerLayout, NavigationView 속성을 열심히 찾음
- DrawerLayout의 StatusBar 은 투명하게 되고, 메뉴 나올때 그림자도 제거 가능
- 정작 하고 싶음 NavigationView 상단 statusbar 그림자가 남아 있음
- NavigationView 코드를 확인 하면서 발생한 생각 상다바 만큼 알파값을 위에 추가한 느낌
- 설마 하면서 NavigationView marginTop 을 -24dp 로 설정하니 그림자가 안보임
- 그래서 내린 알쓸신잡 NavigationView 에서 상단에 알파값을 주기 때문에 상태바 만큼 위로 올려 버리니 동작
-
24만큼 올렸으니 컨텐츠는 24만큼 내려야 합니다. 아래 처럼 android:layout_marginTop=”-24dp” 발견하기 까지 많은 시간이 걸렸습니다.
<android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_marginTop="-24dp" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" />
안드로이드 스튜디오 실행기기 다중 선택
- 한개만 선택해야 한다는 고정 관념
- shift f10 을 이용해서 실행 단일 기기 선택
- 원하는 디바이스 선택 후 테스트
- 너무 고정 관념 처럼 사용함
- 안드로이드 스튜디오 3.0 에서는 이 방법을 사용하기 힘든 이상하게 타겟이 고정됨
- 그런데 다른 방법으로 해결 고정 관념 타파
- 아래 그림 처럼 실행시 기기를 여러개 선택 가능하다.
- 여러개 선택하면 동시에 설치되고 실행
Kotlin DP <-> PX 변경 함수
- 베이스 액티비티나, 베이스 프래그먼트에 추가해 놓으면 편합니다.
- 사용법
- 144.toDP
- 36.toPx
val Int.toDp: Int get() = (this / Resources.getSystem().displayMetrics.density).toInt() val Int.toPx: Int get() = (this * Resources.getSystem().displayMetrics.density).toInt()