Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在列中为小部件flex设置动画_Flutter - Fatal编程技术网

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的应用程序,但这并不能真正为扩展设置动画,是吗?