링크1FrameLayout(Github link)
링크2GridLayout(Github link)
07-03 겹쳐서 배치 - FrameLayout
- FrameLayout은 뷰를 겹쳧서 출력하는 레이아웃 클래스 이다
예시)
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
- FrameLayout을 이용하면 버튼과 이미지가 겹쳐서 출력
- RelateiveLayout처럼 위치 조절 속성없음
- 대신에 invisibility 속성을 이용해서 표시 여부 결정
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello"
android:visibility="invisible"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
Activity 코드에서 하는 방법….
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.button.setOnClickListener{
button.visibility = View.INVISIBLE
imageView.visibility = View.INVISIBLE
}
binding.imageView.setOnClickListener{
button.visibility = View.VISIBLE
imageView.visibility = View.INVISIBLE
}
07-04 표 형태로 배치 - GridLayout
GridLayout 배치 규칙
- GridLayout은 행과 열로 구성된 테이블 화면을 만드는 레이아웃 클래스이다
○ LinearLayout과 비슷하게 orientation으로 뷰를 나열한다
○ LinearLayout과 다르게 줄바꿈을 자동으로 해줌
○ orientation: 방향설정
○ rowCount: 세로로 나열한 뷰 개수
○ columnCount: 가로로 나열한 뷰 개수
- LinearLayout과 많이 비슷하지만 rowCount나 columnCount 속성에 설정한 개수만큼 뷰 추가하면 자동으로 줄바꿈하여 출력
예시1)
예시2)
예시3)
GridLayout 배치 규칙
특정 뷰의 위치 조정하기
- GridLayout에서 layout_row, layout_column속성을 이용하면 특정 뷰의 위치를 조정 가능
특정 뷰의 크기 조정하기
예시 시나리오)
- 만약 E버튼의 크기를 늘려야한다면….
/*
*/
- 만약 여백이 충분하면 여백에 뷰를 넣어서 뷰를 2개 표시도 가능
열이나 행 병합하기
- 마지막으로 어떤 뷰가 테이블에서 여러 같을 차지하게 설정 가능
○ layout_ColumnSpan: 가로로 병합
○ layout_rowSpan: 세로로 행 병합