Всякий раз, когда пользователь нажимает на текстовое поле, чтобы изменить его, появляется курсор, и это так называемый «живот» (на самом деле я не знаю, как он называется, см. Рисунок ниже - красная стрелка). Я хочу включить интерактивный выбор (т. е. позволить перемещать курсор вдоль текстового поля) и отображать мигающий курсор при редактировании, но я хочу, чтобы этот так называемый курсор не появлялся.
вот мой код:
TextField(
enableInteractiveSelection: true,
showCursor: true,
autofocus: false,
decoration: InputDecoration(
isDense: true,
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.grey),
borderRadius: BorderRadius.all(Radius.circular(30))
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.grey),
borderRadius: BorderRadius.all(Radius.circular(30))
),
),
onChanged: (text) => {},
textAlign: TextAlign.center,
controller: _firstNameChanged
? (_firstNameController..text = _newFirstName)
: (_firstNameController..text = userRep.firstName),
inputFormatters: [
FilteringTextInputFormatter.allow(RegExp('[a-zA-Z]'))
],
focusNode: _firstNameInputFocusNode,
onSubmitted: (text) {
if (text.isNotEmpty) {
setState(() {
_newFirstName = text;
_firstNameChanged = true;
});
}
},
style: GoogleFonts.lato(
fontSize: 16.0,
color: Colors.black,
)
)
Есть идеи, пожалуйста?
Благодаря комментарию @Dude я, наконец, смог решить эту проблему в соответствии с этим ответом.
полный код:
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
textSelectionHandleColor: Colors.transparent, /// <- Added
cursorColor: Colors.lightGreen[800],
primaryColor: Colors.green,
accentColor: Colors.lightGreen[800],
fontFamily: 'NewRomanTimes',
textTheme: TextTheme(
headline1: TextStyle(fontSize: 72.0, fontWeight: FontWeight.bold),
headline6: TextStyle(fontSize: 36.0, fontStyle: FontStyle.italic),
)
),
home: MyHomePage()
);
}
Принятый ответ, вероятно, устарел, с 2022 года именно так вы меняете цвет ручки и выделения (вы можете использовать Colors.transparent
, чтобы скрыть это все вместе):
ThemeData().copyWith(
textSelectionTheme:
TextSelectionThemeData(
selectionColor: Colors.yellow[900],
selectionHandleColor: Colors.yellow[900])
)