Flutter 在列中为小部件flex设置动画
我正在构建一个屏幕,其中在Flutter 在列中为小部件flex设置动画,flutter,Flutter,我正在构建一个屏幕,其中在列中有一个容器,具有设置的大小,并包含一个文本字段。当TextField被聚焦时,我想为这个小部件的“扩展”设置动画,以占用列中的所有可用空间(就像我用一个扩展的小部件包装它一样) 我知道存在可以使用的大小和比例转换小部件,但是如果列不理想,我必须知道剩余可用空间的确切大小 有没有办法在这样的列中设置小部件“灵活性”的动画?尝试设置TextField的maxLines属性的动画 下面是一个简单的颤振应用程序,如果点击TextField,maxLines将设置为一个相对
列中有一个容器
,具有设置的大小,并包含一个文本字段
。当TextField
被聚焦时,我想为这个小部件的“扩展”设置动画,以占用列中的所有可用空间(就像我用一个扩展的小部件包装它一样)
我知道存在可以使用的大小和比例转换小部件,但是如果列不理想,我必须知道剩余可用空间的确切大小
有没有办法在这样的列中设置小部件“灵活性”的动画?尝试设置TextField的maxLines属性的动画
下面是一个简单的颤振应用程序,如果点击TextField,maxLines将设置为一个相对较高的值。TextField调整到屏幕的最大高度
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
int _maxLines = 1;
void expandTextField() {
setState(() {
_maxLines = 100;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Sample'),
),
body: Column(
children: <Widget>[
Container(padding: EdgeInsets.all(20), child: Text('Hello')),
Expanded(
child: TextField(
maxLines: _maxLines,
onTap: () => expandTextField(),
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'Name',
),
)),
],
),
),
);
}
}
导入“包装:颤振/材料.省道”;
void main(){
runApp(MyApp());
}
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
int _maxLines=1;
void expandTextField(){
设置状态(){
_最大线=100;
});
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
appBar:appBar(
标题:文本(“颤振样本”),
),
正文:专栏(
儿童:[
容器(padding:EdgeInsets.all(20),child:Text('Hello')),
扩大(
孩子:TextField(
maxLines:_maxLines,
onTap:()=>expandTextField(),
装饰:输入装饰(
边框:OutlineInputBorder(),
labelText:'名称',
),
)),
],
),
),
);
}
}
我不知道该怎么做。但看看这个,你会有个想法。这是来自Play Store和app Store上提供的一个名为Flatter Catalog的应用程序,但这并不能真正为扩展设置动画,是吗?