LinearLayout , GridLayout, TableLayout =계산기 만들기

2022. 3. 16. 16:39Kotlin

 

 

리니어레이아웃(LinearLayout)

 

 orientation  vertical horizontal
  리니어레이아웃 안에 포함될 위젯의 배치를 왼쪽 위부터 수직 방향으로 쌓음 리니어레이아웃 안에 포함될 위젯의 배치를 왼쪽 위부터 수평 방향으로 쌓음
     

버튼을 만들어도 테이블 레이아웃은 layout_weight를 1로 설정, 

리니어 레이아웃은 layout_weight를 1로 두면서 layout_width, height ="wrap_content"로 둔다

 

 

 

 

 

테이블 레이아웃<TableLayout>


행과 열의 개수를 지정한 테이블 형태로 위젯을 배열

이런식으로 <TableRow>를 계속 생성하고 

너비는 Span=" " 으로 조절 

주의할 점은 layout_weight를 wrap_content나 match_parent로 하면 값이 안먹힌다. 무조건 1

 

ex)너비를 6개로 만들거면 span="6"

 

 

 

 
 
 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/tableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TableRow>

        <EditText
            android:layout_weight = "1"
            android:id="@+id/Edit1"
            android:layout_span="5"
            android:hint="숫자1 입력" />
    </TableRow>

    <TableRow>

        <EditText
            android:layout_weight = "1"
            android:id="@+id/Edit2"
            android:layout_span="5"
            android:hint="숫자2 입력" />
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum0"
            android:layout_margin="5dp"
            android:text="0" />

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum1"
            android:layout_margin="5dp"
            android:text="1" />

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum2"
            android:layout_margin="5dp"
            android:text="2" />

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum3"
            android:layout_margin="5dp"
            android:text="3" />

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum4"
            android:layout_margin="5dp"
            android:text="4" />
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum5"
            android:layout_margin="5dp"
            android:text="5" />

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum6"
            android:layout_margin="5dp"
            android:text="6" />

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum7"
            android:layout_margin="5dp"
            android:text="7" />

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum8"
            android:layout_margin="5dp"
            android:text="8" />

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnNum9"
            android:layout_margin="5dp"
            android:text="9" />
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnAdd"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="더하기" />
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnSub"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="빼기" />
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnMul"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="곱하기" />
    </TableRow>

    <TableRow>
        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnDiv"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="나누기" />
    </TableRow>

    <TableRow>
        <Button
            android:layout_weight = "1"
            android:id="@+id/BtnMod"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="나머지" />
    </TableRow>

    <TableRow>

        <TextView
            android:id="@+id/TextResult"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="계산 결과 : "
            android:textColor="#FF0000"
            android:textSize="20dp" />
    </TableRow>

</TableLayout>
 

 

그리드레이아웃<GridLayout>
 
테이블레이아웃과 비슷하지만 행 또는 열을 확장하여 다양하게 배치할 때 더 편리함

<GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:rowCount="10"
    android:columnCount="5"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/Edit1"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:hint="숫자1 입력" />

    <EditText
        android:id="@+id/Edit2"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:hint="숫자2 입력" />

    <Button
        android:layout_width="0dp"
        android:layout_columnWeight="1"
        android:id="@+id/BtnNum0"
        android:layout_margin="5dp"
        android:text="0"  />

    <Button
        android:layout_width="0dp"
        android:layout_columnWeight = "1"
        android:id="@+id/BtnNum1"
        android:layout_margin="5dp"
        android:text="1" />

    <Button
        android:layout_width="0dp"
        android:layout_columnWeight = "1"
        android:id="@+id/BtnNum2"
        android:layout_margin="5dp"
        android:text="2" />

    <Button
        android:layout_width="0dp"
        android:layout_columnWeight = "1"
        android:id="@+id/BtnNum3"
        android:layout_margin="5dp"
        android:text="3" />

    <Button
        android:layout_width="0dp"
        android:layout_columnWeight = "1"
        android:id="@+id/BtnNum4"
        android:layout_margin="5dp"
        android:text="4" />
    <Button
        android:layout_width="0dp"
        android:layout_columnWeight = "1"
        android:id="@+id/BtnNum5"
        android:layout_margin="5dp"
        android:text="5" />

    <Button
        android:layout_width="0dp"
        android:layout_columnWeight = "1"
        android:id="@+id/BtnNum6"
        android:layout_margin="5dp"
        android:text="6" />

    <Button
        android:layout_width="0dp"
        android:layout_columnWeight = "1"
        android:id="@+id/BtnNum7"
        android:layout_margin="5dp"
        android:text="7" />

    <Button
        android:layout_width="0dp"
        android:layout_columnWeight = "1"
        android:id="@+id/BtnNum8"
        android:layout_margin="5dp"
        android:text="8" />

    <Button
        android:layout_width="0dp"
        android:layout_columnWeight = "1"
        android:id="@+id/BtnNum9"
        android:layout_margin="5dp"
        android:text="9" />

    <Button
        android:id="@+id/BtnAdd"
        android:layout_margin="5dp"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:text="더하기" />

    <Button
        android:id="@+id/BtnSub"
        android:layout_margin="5dp"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:text="빼기" />

    <Button
        android:id="@+id/BtnMul"
        android:layout_margin="5dp"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:text="곱하기" />

    <Button
        android:id="@+id/BtnDiv"
        android:layout_margin="5dp"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:text="나누기" />

    <Button
        android:id="@+id/BtnMod"
        android:layout_margin="5dp"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:text="나머지" />

    <TextView
        android:id="@+id/TextResult"
        android:layout_margin="5dp"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:text="계산 결과 : "
        android:textColor="#FF0000"
        android:textSize="20dp" />