I want to disable Rate/kg for writing and give it a value by calculating like this
Rate = amount/weight +carriage/weight +unloading/weight
I dont know how to perform these operations on text field plz help link
I want to disable Rate/kg for writing and give it a value by calculating like this
Rate = amount/weight +carriage/weight +unloading/weight
I dont know how to perform these operations on text field plz help link
Simple solution would be executing calculate method onChange of every TextField.
Here is the example in which we have three TextField, and we want to show sum of first two TextField in third TextField.
You can disable the TextField with enabled property or you can use AbsorbPointer.
import 'package:flutter/material.dart';
class StackOverFlow extends StatefulWidget {
@override
_StackOverFlowState createState() => _StackOverFlowState();
}
class _StackOverFlowState extends State<StackOverFlow> {
TextEditingController _firstController = TextEditingController();
TextEditingController _secondController = TextEditingController();
TextEditingController _thirdController = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Container(
child: Column(
children: <Widget>[
TextField(
controller: _firstController,
onChanged: (value) {
_calculate();
},
keyboardType: TextInputType.number,
),
TextField(
controller: _secondController,
onChanged: (value) {
_calculate();
},
keyboardType: TextInputType.number,
),
AbsorbPointer(
child: TextField(
controller: _thirdController,
keyboardType: TextInputType.number,
),
),
],
),
),
);
}
void _calculate() {
if (_firstController.text.trim().isNotEmpty &&
_secondController.text.trim().isNotEmpty) {
final firstValue = double.parse(_firstController.text);
final secondValue = double.parse(_secondController.text);
_thirdController.text = (firstValue + secondValue).toString();
}
}
}
In-Text widget, You can use the Arithmetic operations like this,
Container(
child: Text(
(currentTemp + kelvin).toStringAsFixed(1),
style: TextStyle(
fontSize: 60,
color: Colors.white,
),
),
),