我想在我们输入时格式化文本TextField。例如,当我_在字段中使用下划线时,它们之间的字符应该变成斜体。
我想要的是在 Flutter 的同一个小部件中实时发生类似降价的文本格式。
RichText 可以提供帮助,但它们不可编辑。为此,我需要一个 RichTextField,但 Flutter 中不存在类似的东西。
我的结果应该类似于 WhatsApp 的消息字段,它应用了粗体、斜体、删除线等。
在 Flutter 中,当我为 TextField 分配一个值或使用 TextEditingController 检查该 TextField 小部件的值时,我得到一个 NoMethodError,它说 getter/setter "text" 在 null 上被调用。
我已经使用以下代码尝试了 Widget 测试:
class TestTEC extends StatefulWidget {
@override
TestTECstate createState() => TestTECstate();
}
class TestTECstate extends State<TestTEC> {
var textController = new TextEditingController();
Widget build(context) {
return Scaffold(
body: Row(
children: <Widget>[
TextField(controller: textController),
RaisedButton(onPressed: () {
setState(() {
textController.text = "New text";
});
}),
],
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我使用的测试代码:
testWidgets('smoke test', (WidgetTester tester) async {
// Build our app and trigger a …Run Code Online (Sandbox Code Playgroud) 我希望能够在水平或垂直方向上滚动多行 TextField。目前,EditableText 使用的 Scrollable 小部件仅允许在一个方向上滚动,即多行时的 AxisDirection.down。我的问题是它包裹了溢出的文本,这是可以理解的,但我想滚动而不是包裹文本。
我尝试过对角线滚动视图,但它不适用于 TextField。还有其他方法可以达到这个效果吗?
我的屏幕布局如下所示:
布局大致如下: Scaffold -> body: NestedScrollView body: MyCustomTextField -> Column[ConstrainedBox -> ListView.builder, Expanded -> EditableText ]
我知道在名称为 example 的字符串中,example.slice(0, -1)它从中删除了最后一个字符。
它是如何做到的?如何slice(0, -1)从字符串中删除最后一个字符?