flutter - 对于TextField小部件中的长文本,如何在未聚焦后从头开始显示文本?

标签 flutter dart flutter-layout

Email TextField
上图是TextField。我的电子邮件地址是“dinesh12345678901@gmail.com”。散焦之后,我需要从头开始显示电子邮件,如下图所示。无论如何,在 flutter 中轻松实现这一目标?
例如:推荐gmail应用。
enter image description here

最佳答案

当您不关注selection时,可以在TextEditingController上设置TextField。这是一个例子:

import 'package:flutter/material.dart';

class TestScreen extends StatefulWidget {
  @override
  _TestScreenState createState() => _TestScreenState();
}

class _TestScreenState extends State<TestScreen> {
  TextEditingController _textEditingController = TextEditingController();
  FocusNode _focusNode = FocusNode();

  @override
  void dispose() {
    _focusNode.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Padding(
          padding: const EdgeInsets.symmetric(horizontal: 48),
          child: Column(
            children: <Widget>[
              Container(height: 16),
              TextField(
                controller: _textEditingController,
                focusNode: _focusNode,
              ),
              SizedBox(height: 36),
              FlatButton(
                onPressed: () async {
                  _textEditingController.selection =
                      TextSelection.fromPosition(TextPosition(offset: 0));
                  await Future.delayed(Duration(milliseconds: 100));
                  _focusNode.unfocus();
                },
                color: Colors.red,
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(12),
                ),
                textColor: Colors.white,
                child: Text('Unfocus'),
              ),
            ],
            crossAxisAlignment: CrossAxisAlignment.stretch,
          ),
        ),
      ),
    );
  }
}
enter image description here

关于flutter - 对于TextField小部件中的长文本,如何在未聚焦后从头开始显示文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63413385/

相关文章:

dart - Dart:以String作为参数的函数作为回调中的参数

ios - 在 Azure Pipelines 中签署 iOS Flutter 应用程序

flutter - 什么时候创建新的 Bloc ?

android - 如何解决 SocketException : Failed host lookup: 'www.xyz.com' (OS Error: No address associated with hostname, errno = 7)

android - 如何在if-else条件下使图标值颜色发生变化?

flutter - 如何以编程方式关闭flutter可关闭小部件?

Flutter 展开时隐藏 Silver 应用栏的标题

reflection - Dart 中的动态实例化

android - 使用Flutter将文本基线与列内的文本对齐

flutter - 根据 TextField 状态更改 TextField 背景颜色