
key
рдкреИрд░рд╛рдореАрдЯрд░ рд▓рдЧрднрдЧ рд╣рд░ рд╡рд┐рдЬреЗрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдЬреЗрдЯреНрд╕ рдЯреНрд░реА рдореЗрдВ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп Keys
рд░рд╛рдЬреНрдп рдХреЛ рдмрдирд╛рдП рд░рдЦрддреА рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕реНрдХреНрд░реЙрд▓ рд╕реНрдерд╛рди рдХреЛ рдмрдЪрд╛рдиреЗ рдпрд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдмрджрд▓рдиреЗ рдкрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд▓реЗрдЦ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рдкрдврд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реБрдирдирд╛ / рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реАрдбрд┐рдпреЛ рдЖрдкрдХреЛ рд╕рдорд╛рди рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп ... рдЖрдкрдХреЛ keys
рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХреЛрдИ рдмреБрд░рд╛рдИ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдмрд╕ рдПрдХ рдирдП рдХреАрд╡рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рдирдП рдЪрд░ рдХреЗ рджреЛрдиреЛрдВ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ (рдореИрдВ рдЖрдкрдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, Map<Foo, Bar> aMap = Map<Foo, Bar>()
)ред
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд▓реЗрдХреНрд╢рди рдореЗрдВ рд╡рд┐рдЬреЗрдЯреНрд╕ рдЬреЛрдбрд╝ рдпрд╛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╕реНрдЯреЗрдЯреНрд╕ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реА рддрд░рд╣ рдХреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ keys
рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП!
рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдЖрдкрдХреЛ keys
рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рджреЛ рд░рдВрдЧреАрди рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ:

рдЖрд╡реЗрджрди рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ Row
рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░рдВрдЧ ( StatelessWidget
) рдХреЗ рджреЛ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╡рд┐рдЬреЗрдЯ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдХрд▓рд░ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдХреНрд░рдо рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдЯ ( StatefulWidget
) рдХреЗ рд╕рд╛рде StatefulWidget
рд╡рд┐рдЬреЗрдЯ рд╣реИрдВред рдЬрдм рдореИрдВ рдиреАрдЪреЗ FloatingActionButton
рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдБ, рддреЛ рд░рдВрдЧ рд╡рд┐рдЧреЗрдЯреНрд╕ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реВрдЪреА рдореЗрдВ рдЕрдкрдирд╛ рд╕реНрдерд╛рди рдмрджрд▓рддреЗ рд╣реИрдВ:
void main() => runApp(new MaterialApp(home: PositionedTiles())); class PositionedTiles extends StatefulWidget { @override State<StatefulWidget> createState() => PositionedTilesState(); } class PositionedTilesState extends State<PositionedTiles> { List<Widget> tiles = [ StatelessColorfulTile(), StatelessColorfulTile(), ]; @override Widget build(BuildContext context) { return Scaffold( body: Row(children: tiles), floatingActionButton: FloatingActionButton( child: Icon(Icons.sentiment_very_satisfied), onPressed: swapTiles), ); } swapTiles() { setState(() { tiles.insert(1, tiles.removeAt(0)); }); } } class StatelessColorfulTile extends StatelessWidget { Color myColor = UniqueColorGenerator.getColor(); @override Widget build(BuildContext context) { return Container( color: myColor, child: Padding(padding: EdgeInsets.all(70.0))); } }
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЕрдкрдиреЗ рдХрд▓рд░ рд╡рд┐рдЬреЗрдЯреНрд╕ рдореЗрдВ рд╕реНрдЯреЗрдЯ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдЙрдиреНрд╣реЗрдВ StatefulWidget
рдмрдирд╛рддреЗ рд╣реИрдВ) рдФрд░ рдЙрдирдореЗрдВ рдХрд▓рд░ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬрдм рд╣рдо рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ:

List<Widget> tiles = [ StatefulColorfulTile(), StatefulColorfulTile(), ]; ... class StatefulColorfulTile extends StatefulWidget { @override ColorfulTileState createState() => ColorfulTileState(); } class ColorfulTileState extends State<ColorfulTile> { Color myColor; @override void initState() { super.initState(); myColor = UniqueColorGenerator.getColor(); } @override Widget build(BuildContext context) { return Container( color: myColor, child: Padding( padding: EdgeInsets.all(70.0), )); } }
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ: рдКрдкрд░ рдХрд╛ рдХреЛрдб рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдпрд╣ рдХрд▓рд░ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд░рдВрдЧреАрди StatefulWidget
рд╡рд┐рдЬреЗрдЯреНрд╕ рдореЗрдВ key
рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рддрдм рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

List<Widget> tiles = [ StatefulColorfulTile(key: UniqueKey()),
рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдмрдЯреНрд░реА рдореЗрдВ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рд╡рд┐рдЧреЗрдЯреНрд╕ рд╣реЛрдВ рдЬреЛ рдЖрдк рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдкреВрд░реЗ рд╕рдмрдЯреНрд░реА рдХреА рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрд┐рд╕реА рднреА рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╡рд╣рд╛рдБ рддреБрдо рдЬрд╛рдУ! рд╕рдм рд╕рдм рдореЗрдВ, рдЖрдк рд╕рднреА рдХреЛ Flutter
рдореЗрдВ keys
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ ...
рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ keys
рдХрднреА-рдХрднреА рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреА рд╣реИ
рдЖрдк рдЕрднреА рднреА рдпрд╣рд╛рдБ рд╣реИрдВ, рд╣реИ рдирд╛? рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддреЛ рдлрд╝реНрд▓рдЯрд░ рдореИрдЬ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрд╡ рдкреЗрдбрд╝реЛрдВ рдФрд░ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХреГрддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдХрд░реАрдм рдЖрддреЗ рд╣реИрдВ! Uhahaha! рд╣рд╛-рд╣рд╛! рд╣рд╛-рд╣рд╛! рдЙрдо, рд╕реЙрд░реАред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдЕрдВрджрд░ рдлрд╝реНрд▓рдЯрд░ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдЬрд┐рд╕ рддрд░рд╣ рдлреНрд▓рдЯрд░ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЯреНрд░реА рдмрдирд╛рддрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рдПрд▓рд┐рдореЗрдВрдЯ рдЯреНрд░реА (рдПрд▓рд┐рдореЗрдВрдЯрдЯреНрд░реА) рднреА рдмрдирд╛рддрд╛ рд╣реИред ElementTree рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ, рдЗрд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдХреА рдХреЗрд╡рд▓ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдмрд╛рд▓ рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рдХрдбрд╝реА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЖрдк рдПрд▓реАрдореЗрдВрдЯрдЯреНрд░реА рдХреЛ рдЕрдкрдиреЗ рдлреНрд▓рдЯрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрдВрдХрд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓ рд╕рдХрддреА рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкрдВрдХреНрддрд┐ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢рд┐рдд рд╕реНрд▓реЙрдЯреНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдЬрдм рд╣рдо рд░реЛ рдореЗрдВ рд░рдВрдЧ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдлрд╝реНрд▓рдЯрд░ рдПрд▓реАрдореЗрдВрдЯрдЯреНрд░реА рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдорддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЬрд╛рдВрдЪ рд╕рдХреЗ рдХрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдХрдВрдХрд╛рд▓ рд╕рдВрд░рдЪрдирд╛ рд╕рдорд╛рди рд╣реИ рдпрд╛ рдирд╣реАрдВред

рд╕рддреНрдпрд╛рдкрди рдХреА рд╢реБрд░реБрдЖрдд рдПрдХ рд░реЛрд╡рд░рдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдмрд╛рд▓ рддрддреНрд╡реЛрдВ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреА рд╣реИред рдПрд▓реАрдореЗрдВрдЯреНрд░реА рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдирдП рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реА рдкреНрд░рдХрд╛рд░ рдФрд░ key
, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рддрддреНрд╡ рдирдП рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд▓рд┐рдВрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рдХреЗ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА key
рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдкрдВрджрди рдХреЗрд╡рд▓ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред (рдпрджрд┐ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рддреЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рдПрдирд┐рдореЗрдЯреЗрдб рдЪрд╛рд░реНрдЯ рдХреЛ рджреЗрдЦреЗрдВред)
рд░рд╛рдЬреНрдп рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП ElementTree рдХреЗ рдиреАрдЪреЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджрд┐рдЦрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рд╡рд┐рдЧреЗрдЯреНрд╕ рдФрд░ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдЯреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рднреА рд╣реИрдВ, рдФрд░ рдХрд▓рд░ рдЗрдирдлреЙрд░реНрдореЗрд╢рди рдХреЛ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдЦреБрдж рд╡рд┐рдЬреЗрдЯреНрд╕ рдореЗрдВред

key
рдмрд┐рдирд╛ рд░рдВрдЧреАрди StatefulWidget
рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдореИрдВ рджреЛ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдХреНрд░рдо рдмрджрд▓рддрд╛ рд╣реВрдВ, рддреЛ рдлрд╝реНрд▓рдЯрд░ рдПрд▓реАрдореЗрдВрдЯрдЯреНрд░реА рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рд░реЛрд╡реАрдбрдЧреЗрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓рд┐рдВрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рд░рдВрдЧ рд╡рд┐рдЬреЗрдЯ рддрддреНрд╡ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдЬреЗрдЯ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ рдФрд░ рд▓рд┐рдВрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реА рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╣реЛрддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рд╕реНрдкрдВрджрди рдПрд▓реАрдореЗрдВрдЯрдЯреНрд░реА рдФрд░ рдЗрд╕рдХреА рд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЧреЗрдЯреНрд╕ рд╕реНрд╡реИрдк рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ!

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рд░рдВрдЧреАрди рд╡рд┐рдЧреЗрдЯреНрд╕ рдореЗрдВ рдХреЛрдб рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдореИрдВрдиреЗ key
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ред рдЕрдм, рдЕрдЧрд░ рд╣рдо Row
рдореЗрдВ рд╡рд┐рдЧреЗрдЯреНрд╕ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЯрд╛рдЗрдк рдХрд░рдХреЗ рд╡реЗ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдореИрдЪ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХрд▓рд░ рд╡рд┐рдЬреЗрдЯ рдФрд░ рдПрд▓рд┐рдореЗрдВрдЯрдЯреНрд░реА рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡ рдХреЗ key
рдореВрд▓реНрдп рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗред рдпрд╣ рд╕реНрдкрдВрджрди рдХреЛ рд░рдВрдЧ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдЗрди рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрд▓реАрдореЗрдВрдЯрдЯреНрд░реА рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдЬреЛ key
рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред

рддрдм рд╕реНрдкрдВрджрди рддрддреНрд╡ рддрддреНрд╡ рдореЗрдВ рдЗрд╕реА рддрддреНрд╡ рдХреЗ рд╕рд╛рде Row
рддрддреНрд╡ рдореЗрдВ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ key
ред рдпрджрд┐ рдпрд╣ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдЬреЗрдЯ рддрддреНрд╡ рдХрд╛ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕реНрдкрдВрджрди рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреЗ рдмрд┐рдирд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдм рдлрд╝реНрд▓рдЯрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рдЬрдм рдореИрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд░рдВрдЧ рд╡рд┐рдЬреЗрдЯ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, keys
рдЙрдкрдпреЛрдЧреА keys
рд╣реИрдВ рдпрджрд┐ рдЖрдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рд╡рд┐рдЬреЗрдЯ рдХреЗ рдХреНрд░рдо рдпрд╛ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рд░рдВрдЧ рдХреЛ рдмрдЪрд╛рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдХреНрд╕рд░ рд╕реНрдерд┐рддрд┐ рдЗрддрдиреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдПрдХ рдПрдиреАрдореЗрд╢рди рдЦреЗрд▓рдирд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛, рдФрд░ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ - рд╕рдм рдХреБрдЫ рдПрдХ рд░рд╛рдЬреНрдп рд╣реИред
рдореБрдЭреЗ keys
рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░: рдпрджрд┐ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ keys
рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рд╡рд┐рдЬреЗрдЯ рд╕рдмрдЯреНрд░реА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЖрдк рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддреА рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП key
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ? рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рдХрд┐рди рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдореЗрдВ рдкрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд░рдВрдЧ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ Padding
рд╡рд┐рдЬреЗрдЯреНрд╕ рдореЗрдВ рд▓рдкреЗрдЯ рджрд┐рдпрд╛, рдЬрдмрдХрд┐ рдХрд▓рд░ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреА рдХреБрдВрдЬреА рдЫреЛрдбрд╝ рджреАред
void main() => runApp(new MaterialApp(home: PositionedTiles())); class PositionedTiles extends StatefulWidget { @override State<StatefulWidget> createState() => PositionedTilesState(); } class PositionedTilesState extends State<PositionedTiles> {
рдЕрдм, рдПрдХ рдмрдЯрди рдХреЗ рд╕реНрдкрд░реНрд╢ рдореЗрдВ, рд╡рд┐рдЧреЗрдЯреНрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ!

рдпрд╣ рдХреИрд╕реЗ рд╡рд┐рдЬреЗрдЯ рдкреЗрдбрд╝ рдФрд░ ElementTree рдЬреЛрдбрд╝рд╛ Padding
рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рджреЗрдЦреЛ:

рдЬрдм рд╣рдо рдмрд╛рд▓ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рддрддреНрд╡реЛрдВ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдмреАрдЪ рдорд┐рд▓рд╛рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рддрддреНрд╡реЛрдВ рдХреЗ рдкреЗрдбрд╝ рдореЗрдВ рдПрдХ рд╕реНрддрд░ рджрд┐рдЦрддрд╛ рд╣реИред рдЖрд░реЗрдЦ рдореЗрдВ, рдмрдЪреНрдЪреЛрдВ рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдЕрдВрдзреЗрд░рд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд╣рд▓реЗ рд╕реНрддрд░ рд╕реЗ рдХреБрдЫ рднреА рд╡рд┐рдЪрд▓рд┐рдд рди рд╣реЛред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

рджреВрд╕рд░реЗ рд╕реНрддрд░ рдкрд░, рдлрд╝реНрд▓рдЯрд░ рдиреЗ рдиреЛрдЯрд┐рд╕ рдХрд┐рдпрд╛ рдХрд┐ рд░рдВрдЧ рддрддреНрд╡ рдХреА key
рд╡рд┐рдЬреЗрдЯ рдХреА key
рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рддрддреНрд╡ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддреА рд╣реИ, рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ рд╣рдЯрд╛ рджреЗрддреА рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдо keys
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ LocalKeys
ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд░рддреЗ рд╕рдордп, рдлрд╝реНрд▓рдЯрд░ рдХреЗрд╡рд▓ рдкреЗрдбрд╝ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░ рдкрд░ keys
рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИред
рдЪреВрдБрдХрд┐ рд╡рд╣ рдЗрд╕реА key
рд╕рд╛рде рдЗрд╕ рд╕реНрддрд░ рдкрд░ рд░рдВрдЧ рд╡рд┐рдЬреЗрдЯ рддрддреНрд╡ рдирд╣реАрдВ рдЦреЛрдЬ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рдирдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдирд╛рд░рдВрдЧреА рдмрдирд╛рддрд╛ рд╣реИ, рдПрдХ рдирдИ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ!

рдпрджрд┐ рд╣рдо Padding
рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП keys
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
void main() => runApp(new MaterialApp(home: PositionedTiles())); class PositionedTiles extends StatefulWidget { @override State<StatefulWidget> createState() => PositionedTilesState(); } class PositionedTilesState extends State<PositionedTiles> { List<Widget> tiles = [ Padding(
рд╕реНрдкрдВрджрди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓рд┐рдВрдХ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдерд╛ред рдмреНрд░рд╣реНрдорд╛рдВрдб рдореЗрдВ рдХреНрд░рдо рдмрд╣рд╛рд▓ рд╣реИред

рдореБрдЭреЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА Key
рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рд╕реНрдкрдВрджрди рдПрдкреАрдЖрдИ рдиреЗ рд╣рдореЗрдВ рдХрдИ Key
рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рджрд┐рдпрд╛ред рдЖрдкрдХреЛ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА key
рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрди рддрддреНрд╡реЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреНрдпрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ keys
рдЖрд╡рд╢реНрдпрдХрддрд╛ keys
ред рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджреЗрдЦреЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреВ-рдбреВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди [1] рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдЖрдк рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрдп рд╕реВрдЪреА рдореЗрдВ рдЖрдЗрдЯрдо рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред

ValueKey
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХрд╛ рдкрд╛рда рд╕реНрдерд╛рдпреА рдФрд░ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдЧрд╛ред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╡рддрдГ ValueKey
рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд╛рда "рдореВрд▓реНрдп" рд╣реИред
return TodoItem( key: ValueKey(todo.task), todo: todo, onDismissed: (direction) => _removeTodo(context, todo), );
ObjectKey
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрддрд╛ рдкреБрд╕реНрддрд┐рдХрд╛ рдЖрд╡реЗрджрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд▓ рд╡рд┐рдЬреЗрдЯ рдбреЗрдЯрд╛ рдХреЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рдВрдпреЛрдЬрди рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд╛рдо рдпрд╛ рдЬрдиреНрдорджрд┐рди, рдПрдХ рдФрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдпреЛрдЬрди рдЕрджреНрд╡рд┐рддреАрдп рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, ObjectKey
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

UniqueKey
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рдорд╛рди рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдХрдИ рд╡рд┐рдЬреЗрдЯ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдЕрдиреНрдп рд╕рднреА рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рддреЛ рдЖрдк UniqueKey
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рд░рдВрдЧреЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ UniqueKey
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп рдирд┐рд░рдВрддрд░ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдереЗ рдЬреЛ рд╣рдорд╛рд░реЗ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрдВрдЧреЗ, рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╕рдордп рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдХреНрдпрд╛ рд░рдВрдЧ рд╣реЛрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдЖрдк рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреА key
рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИред рд╣рд░ рдмрд╛рд░ рдЬрдм рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирдВрдмрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ рдФрд░ рдЖрдк рдлрд╝реНрд░реЗрдо рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рд░рддрд╛ рдЦреЛ рджреЗрдВрдЧреЗред рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ, рдЖрдк keys
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
PageStorageKeys
PageStorageKeys
рд╡рд┐рд╢реЗрд╖ keys
рдЬрд┐рдирдореЗрдВ рд╕реНрдХреНрд░реЙрд▓ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬ рд╕рдХреЗред

GlobalKeys
GlobalKeys
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рд╡реЗ рд╡рд┐рдЬреЗрдЯ рдХреЛ рд░рд╛рдЬреНрдп рдЦреЛрдП рдмрд┐рдирд╛ рдЖрд╡реЗрджрди рдореЗрдВ рдХрд╣реАрдВ рднреА рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдкреЗрдбрд╝ рдХреЗ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рд╣реА рд╡рд┐рдЬреЗрдЯ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде, рд╡рд┐рдЬреЗрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк GlobalKey
рдЙрдкрдпреЛрдЧ GlobalKey
ред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдкреЗрдбрд╝ рдореЗрдВ рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред GlobalKeys
рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЕрдХреНрд╕рд░ (рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ!) GlobalKeys
рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░реЛрдВ рдХреА рддрд░рд╣ GlobalKeys
рд╕рд╛ рд╣реЛрддрд╛ рд╣реИред рдЕрдХреНрд╕рд░ рдЙрдиреНрд╣реЗрдВ InheritedWidgets
рдпрд╛ Redux, рдпрд╛ BLoC рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, Keys
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдк рд╡рд┐рдЬреЗрдЯ рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдмрджрд▓рддреЗ рд╣реИрдВред рд╡рд┐рдЬреЗрдЯ рд╕рдмрдЯреНрд░реА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ key
рд░рдЦреЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ key
рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рдмрдзрд╛рдИ рд╣реЛ, рдЕрдм рдЖрдк рдлреНрд▓рдЯрд░ рдореИрдЬ рдмрдирдиреЗ рдХреА рд░рд╛рд╣ рдкрд░ рд╣реИрдВ! рдЕрд░реЗ рдореИрдВрдиреЗ рдПрдХ рдЬрд╛рджреВрдЧрд░ рдХрд╣рд╛? рдореЗрд░рд╛ рдорддрд▓рдм рдЬрд╛рджреВрдЧрд░ [2] рдХреА рддрд░рд╣ рд╣реИ, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЛрд░реНрд╕ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реИ ... рдЬреЛ рд▓рдЧрднрдЧ рдЙрддрдирд╛ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИред ... рд▓рдЧрднрдЧред
[рез] To-do рдПрдкреНрд▓реАрдХреЗрд╢рди рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдпрд╣рд╛рдБ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ
https://github.com/brianegan/flutter_architecture_samples/tree/master/vanilla
[реи] рд▓реЗрдЦрдХ рд╢рдмреНрдж sorcerer
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ sorcerer
рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрддреНрд░ sourcerer
рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ sourcerer