对于 TextField 小部件中的长文本,如何在未聚焦后从头开始显示文本?
Posted
技术标签:
【中文标题】对于 TextField 小部件中的长文本,如何在未聚焦后从头开始显示文本?【英文标题】:For long texts in TextField widget, how to show text from the starting after unfocus? 【发布时间】:2020-12-04 09:04:31 【问题描述】:上图是TextField。我的电子邮件地址是“dinesh12345678901@gmail.com”。分散注意力后,我需要从下图开始显示电子邮件。有没有办法在颤振中轻松实现这一目标?
例如:参考 gmail 应用程序。
【问题讨论】:
不容易。但是您可能可以从这篇文章 ***.com/questions/51580658/… 有没有其他不减小字体大小的方法? 您必须自己编写一个 TexField 代码才能做到这一点。该链接只是一个关于如何开始这样做的想法。 谢谢肯特。我会试试的。 【参考方案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,
),
),
),
);
【讨论】:
以上是关于对于 TextField 小部件中的长文本,如何在未聚焦后从头开始显示文本?的主要内容,如果未能解决你的问题,请参考以下文章