[flutter] 플러터 Table 위젯에서 특정 행 또는 열 숨기기

플러터의 Table 위젯을 사용하다가 특정 행이나 열을 숨기고 싶을 때가 있을 수 있습니다. 예를 들어 사용자가 선택한 옵션에 따라 다른 행이나 열을 보여주어야 하는 경우가 있을 수 있죠. 이럴 때는 어떻게 해야 할까요?

1. Table 위젯을 이용한 데이터 표시

가장 먼저, Table 위젯을 사용하여 데이터를 표시하는 예시 코드를 살펴보겠습니다.

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Table Widget Example'),
        ),
        body: Center(
          child: Table(
            border: TableBorder.all(),
            children: [
              TableRow(
                children: [
                  Text('Row 1 Column 1'),
                  Text('Row 1 Column 2'),
                  Text('Row 1 Column 3'),
                ],
              ),
              TableRow(
                children: [
                  Text('Row 2 Column 1'),
                  Text('Row 2 Column 2'),
                  Text('Row 2 Column 3'),
                ],
              ),
              // Add more TableRow widgets as needed
            ],
          ),
        ),
      ),
    );
  }
}

위 코드는 플러터의 Table 위젯을 사용하여 간단한 표를 만드는 예시입니다.

2. 데이터 조작을 통한 행 또는 열 숨기기

행이나 열을 숨기기 위해서는 Table 위젯의 구조를 동적으로 변경해야 합니다. 이를 위해 상태 관리와 조건부 렌더링을 사용하여 원하는 행이나 열을 숨기거나 보이게 할 수 있습니다.

// Stateful widget을 사용하여 상태 관리
class TableExample extends StatefulWidget {
  @override
  _TableExampleState createState() => _TableExampleState();
}

class _TableExampleState extends State<TableExample> {
  bool isRowHidden = false;
  bool isColumnHidden = false;

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Table(
        border: TableBorder.all(),
        children: [
          if (!isRowHidden) TableRow(
            children: [
              Text('Row 1 Column 1'),
              Text('Row 1 Column 2'),
              Text('Row 1 Column 3'),
            ],
          ),
          TableRow(
            children: [
              if (!isColumnHidden) Text('Row 2 Column 1'),
              Text('Row 2 Column 2'),
              Text('Row 2 Column 3'),
            ],
          ),
          // Add more TableRow widgets as needed
        ],
      ),
    );
  }
}

위 코드에서는 상태 관리를 통해 isRowHiddenisColumnHidden 값을 변경하여 원하는 행이나 열을 보여주거나 숨길 수 있습니다.

결론

플러터의 Table 위젯을 사용하여 특정 행이나 열을 숨기고 싶을 때에는 상태 관리와 조건부 렌더링을 통해 해당 행이나 열을 보이거나 숨길 수 있습니다. 위 예시 코드를 참고하여 필요에 맞게 수정하여 사용해보세요.