Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.0k views
in Technique[技术] by (71.8m points)

dart - How to add event listener and remove it into InputCodeControl in flutter?

I want to add listener and remove in dispose method to prevent memory leaks in my app. I am trying to add listener which will be fired when code_field is filled.

What ways are possible and how could I do it?

ConfirmCodeScreenState

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


class ConfirmCodeScreen extends StatefulWidget {
    @override
    _ConfirmCodeScreenState createState() => _ConfirmCodeScreenState();
}

class _ConfirmCodeScreenState extends State<ConfirmCodeScreen> {
    final codeControl = InputCodeControl(inputRegex: '^[0-9]*');
    
    
    @override
    void initState() {
        codeControl.addListener(() {
            // there should be listener to subscribe
        });
        super.initState();
    }
    
    @override
    void dispose() {
        codeControl.removeListener(() {
            // should be here             
        });
        super.dispose();
    }
    
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            body: SafeArea(
                child: Container(
                    padding: EdgeInsets.symmetric(
                        horizontal: consts.APP_PADDING),
                    child: Column(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                            InputCodeField(
                                control: codeControl,
                                count: 4,
                                inputType: TextInputType.number,
                                decoration: InputCodeDecoration(
                                    focusColor: Colors.black,
                                    color: Colors.black,
                                    textStyle: TextStyle(
                                        color: Colors.black, fontSize: 30)),
                            ),
                        ],
                    ),
                ),
            ),
        );
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...