•  


Display a snackbar | Flutter

Display a snackbar

It can be useful to briefly inform your users when certain actions take place. For example, when a user swipes away a message in a list, you might want to inform them that the message has been deleted. You might even want to give them an option to undo the action.

In Material Design, this is the job of a SnackBar . This recipe implements a snackbar using the following steps:

  1. Create a Scaffold .
  2. Display a SnackBar .
  3. Provide an optional action.

1. Create a Scaffold

#

When creating apps that follow the Material Design guidelines, give your apps a consistent visual structure. In this example, display the SnackBar at the bottom of the screen, without overlapping other important widgets, such as the FloatingActionButton .

The Scaffold widget, from the material library , creates this visual structure and ensures that important widgets don't overlap.

dart
return
 MaterialApp
(

  title: 
'SnackBar Demo'
,

  home: 
Scaffold
(

    appBar: 
AppBar
(

      title: 
const
 Text
(
'SnackBar Demo'
),

    ),

    body: 
const
 SnackBarPage
(),

  ),

);

2. Display a SnackBar

#

With the Scaffold in place, display a SnackBar . First, create a SnackBar , then display it using ScaffoldMessenger .

dart
const
 snackBar = 
SnackBar
(

  content: 
Text
(
'Yay! A SnackBar!'
),

);


// Find the ScaffoldMessenger in the widget tree

// and use it to show a SnackBar.

ScaffoldMessenger
.
of
(context).
showSnackBar
(snackBar);

3. Provide an optional action

#

You might want to provide an action to the user when the SnackBar is displayed. For example, if the user accidentally deletes a message, they might use an optional action in the SnackBar to recover the message.

Here's an example of providing an additional action to the SnackBar widget:

dart
final
 snackBar = 
SnackBar
(

  content: 
const
 Text
(
'Yay! A SnackBar!'
),

  action: 
SnackBarAction
(

    label: 
'Undo'
,

    onPressed: () {

      // Some code to undo the change.

    },

  ),

);

Interactive example

#
import 'package:flutter/material.dart';

void main() => runApp(const SnackBarDemo());

class SnackBarDemo extends StatelessWidget {
  const SnackBarDemo({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'SnackBar Demo',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('SnackBar Demo'),
        ),
        body: const SnackBarPage(),
      ),
    );
  }
}

class SnackBarPage extends StatelessWidget {
  const SnackBarPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
        onPressed: () {
          final snackBar = SnackBar(
            content: const Text('Yay! A SnackBar!'),
            action: SnackBarAction(
              label: 'Undo',
              onPressed: () {
                // Some code to undo the change.
              },
            ),
          );

          // Find the ScaffoldMessenger in the widget tree
          // and use it to show a SnackBar.
          ScaffoldMessenger.of(context).showSnackBar(snackBar);
        },
        child: const Text('Show SnackBar'),
      ),
    );
  }
}
- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본