Obsidian/Recognition/Programing/Flutter/TableRow특정조건에 따라 보이기 - 숨기기.md

196 lines
5.0 KiB
Markdown
Raw Normal View History

2023-08-14 16:19:25 +00:00
```dart
import 'package:flutter/material.dart';
class MyTable extends StatefulWidget {
createState() {
return StateKeeper();
}
}
class StateKeeper extends State<MyTable> {
bool visibilityTableRow = true;
void _changed() {
setState(() {
if(visibilityTableRow){
visibilityTableRow = false;
}else{
visibilityTableRow = true;
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
primary: true,
appBar: AppBar(
title: Text("Table View"),
),
body: Column(
children: <Widget>[
Table(
border: TableBorder.all(width: 1.0, color: Colors.black),
children: [
TableRow(
children: [
TableCell(
child: Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(5.0),
child: new Text('ID1'),
),
]
)
),
TableCell(
child: Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(5.0),
child: new Text('Name1'),
),
]
)
)
]
),
visibilityTableRow ? TableRow(
children: [
TableCell(
child: Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(5.0),
child: new Text('ID2'),
),
]
)
),
TableCell(
child: Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(5.0),
child: new Text('Name2'),
),
]
)
)
]
): new TableRow(
children: [
TableCell(
child: Row(
children: <Widget>[
new Container(),
]
)
),
TableCell(
child: Row(
children: <Widget>[
new Container(),
]
)
)
]
),
TableRow(
children: [
TableCell(
child: Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(5.0),
child: new Text('ID3'),
),
]
)
),
TableCell(
child: Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(5.0),
child: new Text('Name3'),
),
]
)
)
]
),
],
),
RaisedButton(
child: Text("Hide/Show Table Row"),
onPressed: () => _changed(),
),
],
)
);
}
}
```
OR
```dart
List<TableRow> _myRows(){
List<TableRow> rows = [];
if(bool_row){
rows.add(
TableRow(
children: [
TableCell(
child: Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(5.0),
child: new Text('ID2'),
),
]
)
),
TableCell(
child: Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(5.0),
child: new Text('Name2'),
),
]
)
)
]
)
);
}
//here add others Rows with rows.add(TableRow(...)) ...
return rows;
}
// In Table Widget
...
Table(
children: _myRows(),
),
```