728x90
반응형
그리드레이아웃(GridLayout)
- 테이블 레이아웃처럼 위젯을 표 형태로 배치할 때 사용하지만 좀 더 직관적이다.
- Androud 4.0(아이스크림 샌드위치, API 14)부터 지원
그리드레이아웃 속성
- GridLayout 자체에 사용되는 속성
- rowCount - 행 개수
- columnCount - 열의 수
- Orientation - 그리드를 수평 방향을 우선할지, 수직 방향을 우선할지를 결정한다.
그리드레이아웃 안에 포함될 위젯에서 자주 사용되는 속성
- Layout_row - 자신이 위치할 행 번호(0번부터 시작)
- Layout_column - 자신이 위치할 열 번호(0번부터 시작)
- Layout_rowSpan - 행을 지정된 수만큼 확장
- layout_columnSpan - 열을 지정된 수만큼 확장
- layout_gravity - 주로 fill, fill_vertical, fill_horizontal 등으로 지정 행, 행 또는 열 확장시, 위젯을 확장된 셀에 꽉 채우는 효과를 낸다.
그리드 레이아웃 사용해 계산기 만들기
목표 - 그림[1]
코드
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="5"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnSpan="5"
android:layout_gravity="fill_horizontal"
android:hint="숫자를 입력하세요 : "
android:textSize="20sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnSpan="5"
android:layout_gravity="fill_horizontal"
android:hint="숫자를 입력하세요 : "
android:textSize="20sp" />
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="0" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="1" />
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="2" />
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="3" />
<Button
android:id="@+id/button5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="4" />
<Button
android:id="@+id/button6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="5" />
<Button
android:id="@+id/button7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="6" />
<Button
android:id="@+id/button8"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="7" />
<Button
android:id="@+id/button9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="8" />
<Button
android:id="@+id/button10"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:text="9" />
<Button
android:id="@+id/button11"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnSpan="5"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:text="더하기" />
<Button
android:id="@+id/button12"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnSpan="5"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:text="빼기" />
<Button
android:id="@+id/button13"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnSpan="5"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:text="곱하기" />
<Button
android:id="@+id/button14"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnSpan="5"
android:layout_columnWeight="1"
android:layout_gravity="fill_horizontal"
android:text="나누기" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_rowWeight="1"
android:layout_columnSpan="5"
android:layout_gravity="fill_horizontal"
android:hint="결과 : "
android:textSize="20sp" />
</GridLayout>
728x90
반응형
최근댓글