ram2 ๐Ÿš—

[Flutter] Offstage class ์ •๋ฆฌ ๋ณธ๋ฌธ

๐Ÿ’ง flutter

[Flutter] Offstage class ์ •๋ฆฌ

coram22 2022. 7. 6. 00:46
728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

Offstage class

offstage class๋Š” ๋ง ๊ทธ๋Œ€๋กœ stage์—์„œ off(๋ฒ—์–ด๋‚œ๋‹ค)ํ•œ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ–ˆ๋‹ค.

offstage class๋Š” navigator์™€ ๋น„์Šทํ•˜๊ฒŒ ํŽ˜์ด์ง€๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.
ํ•˜์ง€๋งŒ, ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ํŠน์ง•์ด์ž ์žฅ์ ์ด ์žˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ํŠน์ง•์€ ์šฐ๋ฆฌ ๋ˆˆ์—๋Š” ๋ณด์ด์ง€ ์•Š์ง€๋งŒ offstage ์ƒํƒœ์—์„œ๋„ ๊ณ„์† ์‹คํ–‰๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ ๋ˆˆ์— ๋ณด์ด๋Š๋ƒ ์•ˆ๋ณด์ด๋Š๋ƒ์˜ ์—ฌ๋ถ€์— ๊ด€๊ณ„ ์—†์ด ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ์†Œ์š”๋œ๋‹ค.

์ด์ œ offstage์— ๋Œ€ํ•ด ๋” ์ž์„ธํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค.
์ „์ฒด ์ฝ”๋“œ๋Š” ์•„๋ž˜ ๋งํฌ๋กœ ๋‘์—ˆ์œผ๋‹ˆ ์ „์ฒด ์ฝ”๋“œ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ๋“ค์–ด๊ฐ€๊ธธ ๋ฐ”๋ž€๋‹ค.



  1. offstage๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋จผ์ € true๋กœ ๊ฐ’์„ ์„ค์ •ํ•ด์ค€๋‹ค.
bool _offstage = true;
  1. offstage๊ฐ€ true์ด๋ฉด ๋ฌผ๋ฆฌ์  ๊ณต๊ฐ„์ด ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.
    ๋ฐ˜๋Œ€๋กœ, offstage๊ฐ€ false์ด๋ฉด ๋ฌผ๋ฆฌ์  ๊ณต๊ฐ„์ด ๋ˆˆ์— ๋ณด์ธ๋‹ค.
@override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Offstage(
          offstage: _offstage,
          child: FlutterLogo(
            key: _key,
            size: 150.0,
          ),
        ),
        Text('Flutter logo is offstage: $_offstage'),
        ElevatedButton(
          child: const Text('Toggle Offstage Value'),
          onPressed: () {
            setState(() {
              _offstage = !_offstage;//false๋กœ ์ดˆ๊ธฐ ์„ค์ •ํ•œ ๊ฐ’์ด ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ๊ฐ’์ด ๋ฐ”๋€๋‹ค.
            });
          },
        ),
      ],
    );
  }

<์ดˆ๊ธฐํ™”๋ฉด>

<๋ฒ„ํŠผ ๋ˆ„๋ฅธ ํ›„ ํ™”๋ฉด>

์ „์ฒด ์ฝ”๋“œ
https://dartpad.dev/?id=2bad6eb52a25efd3df702370db842253

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Flutter] SizedOverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] OverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] LimitedBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] IntrinsicWidth class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] IntrinsicHeight class ์ •๋ฆฌ  (0) 2022.07.06