Android Studio

Do it 안드로이드 앱 프로그래밍 - 둘째마당(2장) 레이아웃 익히기

_jordy 2021. 8. 25. 23:56

<Layout>

제약 레이아웃(ConstraintLayout)

- 디폴트 레이아웃

 

리니어 레이아웃(LinearLayout) 

- 한 쪽 방향으로 차례대로 뷰를 추가하며 화면을 구성하는 방법

- 가로 방향(Horizontal), 세로 방향(Vertical)

- orientation 속성 필수

 

상대 레이아웃(RelativeLayout)

- 부모 레이아웃과의 상대적 위치 또는 같은 레이아웃 안에 들어 있는 다른 뷰와의 상대적 위치를 이용해 화면을 배치하는 레이아웃

 

프레임 레이아웃(FrameLayout)

- 가장 상위에 있는 하나의 뷰 또는 뷰그룹만 보여주는 방법

- 여러 개의 뷰가 들어가면 중첩하여 쌓게 됨, 여러 개의 뷰를 중첩한 후 각 뷰를 전환하여 보여주는 방식으로 자주 사용

 

테이블 레이아웃(TableLayout)

- 격자 모양의 배열을 사용하여 화면을 구성하는 방법

 

뷰의 영역(Box), 테두리 바깥쪽 공간(Margin), 테두리 안쪽 공간(Padding)

 

뷰의 배경 색 지정하는 속성 : background (#ff0000 빨 , #00ff00 녹색, #0000ff 파랑) , 반투명하게 표현 ex) #88ff0000

 

...
//new 연산자로 리니어 레이아웃을 만들고 방향설정
	LinearLayout mainLayout = new LinearLayout(this);
    mainLayout.setOrientation(LinearLayout.VERTICAL); 
...

 

자바 소스 코드에서 뷰를 만들어 뷰그룹에 추가할 때 뷰 배치를 위한 속성을 설정할 수 있는 LayoutParams 객체 사용, 이 객체는 레이아웃에 추가되는 뷰의 속성 중에서 레이아웃과 관련된 속성을 담고 있음(뷰의 가로와 세로 속성 지정)

 

뷰 정렬 시 gravity라는 속성 이름 사용

- layout_gravity : 뷰가 어디에 위치할 것인지 결정

- gravity : 뷰의 내용물의 위치를 결정

baselindAligned : 각각의 뷰에 들어 있는 텍스트의 아래쪽 바닥면을 똑같이 맞추기 위한 속성(true로 설정시)

 

여유 공간을 분할하는 속성 : layout_weight

- layout_width나 layout_height로 지정하는 뷰의 크기는 wrap_content나 숫자 값으로 지정되어야 함

※공간 분할 목적으로 사용할 때는 분할하려는 방향에 따라 layout_width나 layout_height의 값을 0dp로 만들어야 함


relativeLayout에서 layout_above/below 속성을 이용하면 ex)두번째버튼 의 바로 윗부분/아랫부분까지만 공간 차지함

상대 레이아웃에서 부모 컨테이너와의 상대적 위치를 이용해 뷰를 배치할 수 있는 속성 -> layout_alignParent~

다른 뷰와의 상대적 위치를 이용해 뷰를 배치할 수 있는 속성-> layout_align~

 

tablelayout안에 포함된 TableRow의 높이값은 내부적으로 항상 wrap_content, 폭은 항상 match_parent

테이블 모양으로 레이아웃을 만들 때, 오른쪽에 남는 공간이 없도록 만들고 싶으면 stretchColumns 속성 추가

 

▶ScrollView - 기본적으로 수직 방향의 스크롤 지원

수평 방향의 스크롤 사용 -> HorizontalScrollView

 

 


 

도전! 03 


도전! 04