seong

Flutter 스와이프로 삭제 시 Dialog띄우기 본문

Flutter/중계 플랫폼 프로젝트

Flutter 스와이프로 삭제 시 Dialog띄우기

hyeonseong 2022. 12. 2. 14:27

스와이프 만들기 https://seong9566.tistory.com/252

스와이프 위젯의 확인창 띄우기

그중 확인창을 띄우고 싶다면 confirmDismiss를 사용하면된다.

사용 방법은 DismissDirection 매개변수를 한개 받아 Future로 true,flase를 검증해 삭제 및 취소를 하는 방식이다.

 

confirmDismiss 코드

주의할점  - onDismissed이전에 실행 되어야 한다.

내부 설명을 보면 ConfirmDismissCallback 함수는 Future의 bool값을 반환받기 때문에 async,await를 사용해주었다.

 confirmDismiss: (DismissDirection direction) async {
            return await showDialog(
                context: context,
                builder: ((context) {
                  return AlertDialog(
                    title: Text("정말 삭제를 하시겠습니까?"),
                    content: Text("삭제하면 채팅방의 모든 내용은 삭제 됩니다."),
                    actions: <Widget>[
                      TextButton(
                          onPressed: () => Navigator.of(context).pop(true),
                          child: const Text("Delete")),
                      SizedBox(width: 10),
                      TextButton(
                        onPressed: () => Navigator.of(context).pop(false),
                        child: const Text("Cancel"),
                      ),
                    ],
                  );
                }));
            // onDismissed: (direction) { // 상태관리에 필요함.
            //   setState(() {
            //     items.removeAt(index);
            //   });
            // },
          },

 

실행화면