버그 잡이

[Udacity Android with Kotlin]2. Layout #BindingView #Constraint 본문

모던 안드로이드/Udacity Android with kotlin

[Udacity Android with Kotlin]2. Layout #BindingView #Constraint

버그잡이 2020. 4. 9. 14:19

오늘은 Android with Kotlin 두번째 강의 Layout편을 들었다.

 

이번 강의에서 새롭게 알게 된것은 3가지였다.

 

1. layout Editor의 활용

2. DataBinding

3. Constraint의 다양한 활용

 

 

 

Layout Editor의 활용

 

강의에서는 레이아웃을 만들때 editor를 적극적으로 사용한다.

이를 보면서 지금까지 코드로만 작성했던 나의 모습이 얼마나 비효율적이었는지 깨달았다.

높이, 넓이와 같은 기본적인 사항에 대한 수정은 코드로 작성하는 것과 크게 차이가 없다.

하지만 다음과 같은 작업으로 효율성을 높일 수 있다.

 

- String, Dimen과 같은 value를 간편하게 추가할 수 있다.

- 특정 뷰의 style을 extract해서 공통의 style로 지정할 수 있다. (view 우클릭 -> refactor -> extract)

 

 

 

DataBinding

 

 

1) Activity에서 Layout 불러오기

 

layout에 있는 뷰를 activity로 가져오기 위해서 지금까지 findviewbyid를 사용했다.

하지만 이는 runtime시 작동됨으로 앱을 느리게 만들 수 있다.

 

DataBinding은 view를 찾는 작업을 compile 단계에서 할 수 있게 해준다.

Binding Object를 통해서 compile시 뷰를 찾아준다

 

2)Layout에 Data 클래스를 만들어 변수처럼 사용하기

 

 

DataBinding을 활용하면 레이아웃 xml파일에서 Data클래스를 선언 후 변수처럼 사용할 수 있다.

이를 통해 얻는 장점은

   a. activity단의 코드를 줄일 수 있고 

   b. data와 layout이 분리됨으로써 생기는 문제를 방지할 수 있다.

 

 

*사용법

1. 원하는 data 클래스를 만든다.

2. layout에 <data></data>안에 해당 클래스를 정의해준다.

3. 이후 원하는 항목에 해당 데이터를 변수처럼 넣는다 "@={myName.name}"

4. activity에서 data 객체를 생성 후 데이터를 넣어준다.

 

 

 

 

 

Constraint

  • Constraint 사용하는 이유
    • Flat 계층을 만들 있다.
    • 반응형 레이아웃을 만들기에 좋다.
    • Editor 사용하기 편리하다.

 

  • Ratio
    • 가로/세로 비율을 조절할 있다.
      • 이미지View 대해서 같은 ratio 적용하고 싶을때
      • 화면이 변해도 정사각형을 유지하고 싶을때.

 

  • Chian 종류
    • Weighted chain
    • Packed chain with bias

 

  • Editor에서 세개 선택 우클릭 누르면 쉽게 chain으로 연결할 있다.

 

  • BaseLine
    •  

  • 다음과 같이 show baseline 클릭하면 드래그로 원하는 view baseLine 맞출 있다.

 

 

 

 

기타

* lineSpacingMultilplier : textView에 긴 글이 들어갈때 줄간격을 조절

 

반응형
Comments