Widget de décrément contre l'incrément de flottement

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:kadir_alkan_kuafor/models/general_model.dart';
import 'package:kadir_alkan_kuafor/models/number_increment_decrement_model.dart';
 
class NumberIncrementDecrement extends StatefulWidget {
  final NumberIncrementDecrementModel numberIncrementDecrementModel;
 
  NumberIncrementDecrement({Key key, this.numberIncrementDecrementModel})
      : super(key: key);
 
  @override
  State<statefulwidget> createState() => _NumberIncrementDecrementState(
      numberIncrementDecrementModel: this.numberIncrementDecrementModel);
}
 
class _NumberIncrementDecrementState extends State<numberincrementdecrement> {
  General general = new General();
 
  TextEditingController controller = TextEditingController();
  final NumberIncrementDecrementModel numberIncrementDecrementModel;
 
  _NumberIncrementDecrementState({
    @required this.numberIncrementDecrementModel,
  });
 
  @override
  void initState() {
    super.initState();
    controller.addListener(onChange);
  }
 
  void onChange() {
    this.numberIncrementDecrementModel.value=int.parse(controller.text.replaceAll("Adet", "").trim());
  }
  @override
  Widget build(BuildContext context) {
    return new Row(
      mainAxisAlignment: MainAxisAlignment.center,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <widget>[
        SizedBox(
            width: 25,
            height: 48,
            child: GestureDetector(
              onTap: () => minus(),
              child: Container(
                  decoration: BoxDecoration(
                      color: Colors.white,
                      borderRadius: BorderRadius.only(
                          topLeft: new Radius.circular(5),
                          bottomLeft: new Radius.circular(5)),
                      border: Border.all(width: 2, color: Colors.white)),
                  child: Icon(Icons.remove, color: Colors.black)),
            )),
        SizedBox(
          width: 80,
          height: 50,
          child: TextField(
            autofocus: false,
            controller: controller,
            keyboardType: TextInputType.number,
            textAlign: TextAlign.center,
            style: TextStyle(color: Colors.yellow),
            inputFormatters: [WhitelistingTextInputFormatter.digitsOnly],
            decoration: InputDecoration(
              contentPadding: EdgeInsets.all(8.0),
              hintText: this.numberIncrementDecrementModel.value.toString()+" Adet",
              hintStyle: TextStyle(color: Colors.yellow),
              enabledBorder: const OutlineInputBorder(
                borderRadius: BorderRadius.all(Radius.zero),
                borderSide: const BorderSide(color: Colors.white, width: 2.0),
              ),
              focusedBorder: const OutlineInputBorder(
                borderRadius: BorderRadius.all(Radius.zero),
                borderSide: const BorderSide(color: Colors.white, width: 2.0),
              ),
            ),
          ),
        ),
        SizedBox(
            width: 25,
            height: 48,
            child: GestureDetector(
              onTap: () => add(),
              child: Container(
                  decoration: BoxDecoration(
                      color: Colors.white,
                      borderRadius: BorderRadius.only(
                          topRight: new Radius.circular(5),
                          bottomRight: new Radius.circular(5)),
                      border: Border.all(width: 2, color: Colors.white)),
                  child: Icon(Icons.add, color: Colors.black)),
            )),
      ],
    );
  }
 
  void add() {
    setState(() {
      this.numberIncrementDecrementModel.value++;
      controller.text = this.numberIncrementDecrementModel.value.toString()+' Adet';
    });
  }
 
  void minus() {
    setState(() {
      if (this.numberIncrementDecrementModel.value != 0) this.numberIncrementDecrementModel.value--;
      controller.text = this.numberIncrementDecrementModel.value.toString()+' Adet';
    });
  }
}
</widget></numberincrementdecrement></statefulwidget>
Fine Fox