【问题标题】:For long texts in TextField widget, how to show text from the starting after unfocus?对于 TextField 小部件中的长文本,如何在未聚焦后从头开始显示文本?
【发布时间】:2020-12-04 09:04:31
【问题描述】:

上图是TextField。我的电子邮件地址是“dinesh12345678901@gmail.com”。分散注意力后,我需要从下图开始显示电子邮件。有没有办法在颤振中轻松实现这一目标?

例如:参考 gmail 应用程序。

【问题讨论】:

  • 不容易。但是您可能可以从这篇文章 stackoverflow.com/questions/51580658/…
  • 有没有其他不减小字体大小的方法?
  • 您必须自己编写一个 TexField 代码才能做到这一点。该链接只是一个关于如何开始这样做的想法。
  • 谢谢肯特。我会试试的。

标签: flutter dart flutter-layout


【解决方案1】:

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

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,
          ),
        ),
      ),
    );
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多