안드로이드 알쓸신잡 1

  • 안드로이드 기본 메뉴를 사용중에 아래와 같은 요구 사항이 들어 올때 처리 방법
    • 이렇게
    • 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()
    

PyeongHo

즐겁게 또 즐겁게