안드로이드 2주차 정리

- 1/18 (화)

학습목표

  • 뷰, 뷰그룹 사용법
  • 액티비티에서 뷰들을 정렬하는 법
  • 스크롤이 가능한 콘텐츠에서 스크롤뷰 사용하는법
  • 뷰의 가시성을 바꾸는법
  • 문자열과 디멘션 리소스를 만들고 사용하는법
  • 안드로이드 스튜디오 레이아웃 에디터로 리니어 레이아웃 만드는법

뷰, 뷰그룹

  • ViewGroup
    ViewGroup은 자식뷰(View, ViewGrup)를 포합할 수 있습니다. 레이아웃을 구성하는 View들은 ViewGroup의 루트에 따라 계층적으로 조직됩니다.

  • View
    이 클래스는 사용자 인터페이스 구성 요소의 기본 빌딩 블록을 나타냅니다. View는 화면의 직사각형 영역을 차지하며 그리기 및 이벤트 처리를 담당합니다. View는 대화형 UI 구성 요소(버튼, 텍스트 필드 등)를 만드는 데 사용되는 위젯의 기본 클래스입니다.

res/dimens

디멘션 리소스는 안드로이드 위젯들의 크기에 대한 정보를 담고 있는 리소스입니다. (ex. dp, sp, pt, px 등)

Linear Layout

리니어 레이아웃은 모든 자식뷰를 하나의 방향으로 정렬하는 뷰그룹입니다. android:orientation 어트리뷰트를 통해서 수직(vertical), 수평(horizontal)으로 설정할 수 있습니다.

LinearLayout과 LinearLayoutCompat의 차이

LinearLayoutCompat은 API수준과 상관없이 모든 LinearLayout관련 메소드가 들어있다. 반면 LinearLayout에는 지금 사용하고 있는 API에 해당하는 메소드만 들어있다. 그래서 구버전 API에서 새로운 기능을 사용하고 싶다면 LinearLayoutCompat을 써야한다.

- 1/19(수)

학습목표

  • EditText뷰를 사용해서 유저 입력을 얻는 방법.
  • EditText뷰에서 가져온 텍스트를 사용해서 TextView뷰에 텍스트를 설정하는 방법.
  • 뷰와 뷰그룹으로 작업하는 방법.
  • 뷰의 가시성을 바꾸는 방법.

EditText

텍스트를 입력하고 수정하기 위한 유저 인터페이스 요소입니다. EditText위젯을 정의할 때, 반드시 inputType 속성을 지정해야합니다. inputType 속성에 따라 그에 맞는 키보드가 유저에게 보여집니다.

Button 위젯의 배경색 바꾸는 방법

기본적으로 Button의 색상은 res/theme.xml의 colorPrimaryVariant의 색상을 갖는듯 하다. (찾아보진 않았음. 실험해본 결과)
이 기본값에서 사용자가 색을 지정하기 위해선 backgroundTint 속성을 변경해주면 된다.

activity_main.xml

<Button
	android:id="@+id/done_button"
    	android:layout_width="wrap_content"
 	android:layout_height="wrap_content"
	android:backgroundTint="@color/colorAccent"/>

- 1/23(일)

학습목표

  • 컨스트레인트 레이아웃을 사용해서 뷰들을 정렬하는 방법.
  • 텍스트 뷰의 배경 색을 변경하는 방법.
  • 베이스라인 컨스트레인트를 사용하여 텍스트와 뷰를 정렬하는 방법.
  • 뷰들의 그룹으로부터 수직, 수평체인들을 생성하는 방법.

ConstraintLayout

컨스트레인트 레이아웃은 위젯의 크기와 위치를 유연하게 조정할 수 있는 뷰그룹입니다. 이 레이아웃을 사용하면 단일의 뷰 계층으로(뷰 그룹안에 뷰 그룹을 넣는 일 없이) 더 크고 복잡한 레이아웃을 만들 수 있습니다.

Constraint

제약 조건은 두 UI 요소 간의 연결 또는 정렬입니다. 각 제약 조건은 한 보기를 다른 보기, 상위 레이아웃 또는 보이지 않는 지침에 연결하거나 정렬합니다. ConstraintLayout에서 최소한 하나의 수평 및 하나의 수직 제약 조건을 정의하여 뷰를 배치합니다.

위젯의 스타일 추출하는 법.

  1. activity_main.xml의 디자인탭으로 간다.
  2. 컴포넌트 트리에서 추출하고 싶은 위젯을 우클릭한다.
  3. refactor > extract style 클릭.
  4. 추출하고 싶은 설정들을 선택후 ok를 누른다.
  5. styles.xml이 생성되고 그 안에 설정들이 저장된다.

Chains

체인은 양방향 제약 조건으로 서로 연결된 뷰 그룹입니다. 체인 내의 보기는 수직 또는 수평으로 분산될 수 있습니다.

Head of the chain

체인의 첫 번째 뷰를 체인 헤드라고 합니다. 체인의 헤드에 설정된 속성은 체인의 모든 뷰를 제어하고 위치를 지정합니다.

Baseline constraint

Baseline constraint는 텍스트를 가진 View 기준선을 다른 View의 텍스트의 기준선과 정렬합니다. 텍스트가 포함된 View를 정렬하는 것은 특히 글꼴의 크기가 다른 경우 어려울 수 있습니다.

- 1/24(월)

학습목표

  • 데이터 바인딩을 사용해서 비효율적인 findViewById() 호출을 제거하는 방법.
  • xml에서 직접 앱 데이터로 접근하는 방법.

Data Binding

  • Data Binding의 장점
    • findViewById()를 사용하는 코드보다 짧고 읽기 쉽고 유지 관리하기 쉽습니다.
    • 데이터와 View가 명확하게 분리됩니다.
    • Android 시스템은 각 View를 가져오기 위해 View 계층 구조를 한 번만 탐색합니다.
    • 뷰의 접근하는 것에 대한 타입 안전을 얻습니다.
  • 사용법
    • build.gradle(Module: app)을 연다.
    • android {} 안에 아래와 같은 코드를 추가한다.
    • 안드로이드 스튜디오 상단에 떠오른 Sync now 버튼을 누른다.
    • XML 레이아웃에서 루트 View로 <layout>을 사용 합니다.
    • 바인딩 변수를 정의합니다. private lateinit var binding: ActivityMainBinding
    • binding = DataBindingUtil.setContentView(this, R.layout.activity_main)으로 바인딩 객체를 생성합니다.
    buildFeatures {
    dataBinding true
}

좋은 웹페이지 즐겨찾기