有没有一种方法可以将光标放置在多行TextFields中单击鼠标的位置?

时间:2019-11-14 00:55:42

标签: flutter flutter-web

我正在使用类似于Flutter画廊textformfield example中“生活故事”字段的多行文本字段。

我无法使光标停留在使用鼠标放置的位置。您可以使用箭头键将其移动到所需位置。

我希望能够通过使用鼠标/指针单击将光标放置在文本中想要的任何位置。

这实际上是在发生什么。如果文本多于一行,则当用户尝试将光标置于第一行以外的其他行时,光标会跳到第一行。似乎跳到了第一行中最接近用户在后续行中单击的水平位置的水平位置。

  • 要进行复制,请输入一长串文本或键入一小段文本,然后按回车键,然后输入另一行文本。

  • 尝试单击进入第二行。 (如果文本的第二行比第一行长,那么当您单击超出第一行长度的位置时,您会看到一些有趣的行为。)

main.dart:

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> {

  @override
  Widget build(BuildContext context) =>Scaffold(
    body: Center(
      child: Center(
        child:TextFormField(
          maxLines: null,
        ),
      ),
    ),
  );
}

pubspec.yaml:

name: textformfield_demo
description: A new Flutter project.

version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.2

dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:
  uses-material-design: true

Flutter(在Mac OS X 10.14.6 18G103上为Channel dev,v1.10.16,语言环境为美国)

Dart VM版本:2.5.1

感谢您的帮助!

0 个答案:

没有答案