уходит в начало. Мне нужно чтобы при вводе буква D убиралась и на её место вставлялось введенная буква. Как можно такое сделать?
https://pub.dev/packages/mask_text_input_formatter мб подойдет?
ну вот я с ним и пытаюсь. из примера маску заюзал. работает, но хинт пропадает
как это хинт пропадает? тип изначальный?
Это пробовал, но тут хинт пропадает
да hintText у текстфилда
аа, ну это на то и хинт, что пропадает.
пробовал такой инпутформаттер: class PhoneNumberInputFormatter extends TextInputFormatter { @override TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) { if (newValue.text == '+') { return newValue; } if (newValue.text.isEmpty || newValue.text[0] != '+') { final newText = '${newValue.text.replaceAll(RegExp(r'[^0-9]'), '')}'; return TextEditingValue( text: newText, selection: TextSelection.collapsed(offset: newText.length), ); } return newValue; } }
тут тоже пропадает
не понял как именно ты хочешь сейвить хинттекст, попробуй гпт прописать
тип базовый hint ** . когда ввожу первый символ (например цифру 1) - hint становится 1*
import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: MyHomePage(), ); } } class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { TextEditingController _controller = TextEditingController(); String _hintText = ''; @override void initState() { super.initState(); _controller.addListener(_updateHint); } _updateHint() { if (_controller.text.isEmpty) { setState(() { _hintText = ''; }); } else { setState(() { _hintText = _controller.text[0] + '*'; }); } } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text('TextField Hint')), body: Center( child: Padding( padding: const EdgeInsets.all(8.0), child: TextField( controller: _controller, decoration: InputDecoration(hintText: _hintText), ), ), ), ); } @override void dispose() { _controller.dispose(); super.dispose(); } }
спасибо, сейчас гляну
Обсуждают сегодня