我在Column小部件中有两个孩子,第一个是简单的Container,第二个是Expanded小部件。用户可以隐藏/显示第一个Container. 在这种情况下,我需要在两个小部件上应用动画,因此第一个容器的高度应自动减小,第二个小部件的高度应逐渐增加,直到填满整个空间。
我测试使用AnimatedContainer,但它需要指定其前后的高度,这是我不知道的。
请问有什么建议吗?
class ViewerPage extends StatefulWidget {
@override
_ViewerPageState createState() => _ViewerPageState();
}
class _ViewerPageState extends State<ViewerPage> {
bool visible = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Example"),
),
bottomNavigationBar: BottomAppBar(
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
IconButton(
icon: Icon(Icons.show_chart),
onPressed: () {
setState(() {
visible = !visible;
});
},
),
],
),
),
body: Container(
child: Column(
children: <Widget>[
Visibility( …Run Code Online (Sandbox Code Playgroud) 我需要在 RichText 中启用文本选择。当用户单击特定的 TextSpan 时,我还需要调用一些代码。
我厌倦了运行下面的代码。但我注意到这onTap仅适用于_nonSelectableRichText(),而不适用于_selectableRichText.
我不知道这是否是一个错误……但我问是否有人有结合这两个功能的解决方案?
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
class TestPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Builder(
builder: (context) => Container(
child: _nonSelectionRichText(context),
//child: _selectionRichText(context),
),
),
),
);
}
Widget _nonSelectableRichText(BuildContext context) {
return RichText(
text: TextSpan(
children: [
TextSpan(
text: "Welcome to ",
style: TextStyle(color: Colors.black, fontSize: 70)),
TextSpan(
text: "Flutter",
style: TextStyle(color: Colors.black, fontSize: 70),
recognizer: TapGestureRecognizer()
..onTap = () { …Run Code Online (Sandbox Code Playgroud) 我有一个大段落,很多单词必须有工具提示消息。当您单击这些单词中的任何一个时,应该会出现工具提示消息。
我尝试使用 RichText 小部件,其中包含许多TextSpan子项,如下所示:
RichText(
text: TextSpan(
children: <TextSpan>[
TextSpan(text: "Welcome to"),
TextSpan(text: "Flutter"),
...
]),
),
Run Code Online (Sandbox Code Playgroud)
TextSpan
当我单击“我尝试用小部件换行”TextSpan时,我需要显示工具提示Tooltip文本
RichText(
text: TextSpan(
children: <TextSpan>[
TextSpan(text: "Welcome to"),
...
Tooltip(
message: "any text here",
child: TextSpan(text: "Flutter"),
),
...
]),
),
Run Code Online (Sandbox Code Playgroud)
但这是不可能的,因为孩子们必须是TextSpan唯一的。
有人知道如何实现这个要求吗?