想要通过单击将动画容器再次变小到初始大小。它完美扩展,但我无法再次关闭它
Posted
技术标签:
【中文标题】想要通过单击将动画容器再次变小到初始大小。它完美扩展,但我无法再次关闭它【英文标题】:want to get an animated container small again to initial size with a click. It expands perfectly but I can't close it again 【发布时间】:2020-12-14 21:31:26 【问题描述】:希望通过单击将动画容器重新缩小到初始大小。它完美地展开,但我无法再次关闭它...................................................... ..................................................... .....................................
child: AnimatedContainer(
duration: Duration(milliseconds: 200),
width: isTextOpen ? 200 : 95,
height: 50,
decoration: BoxDecoration(
borderRadius:
BorderRadius.all(Radius.circular(3)),
border: isTextOpen
? Border.all(
color: Colors.deepOrangeAccent,
width: 1.0,
)
: null,
),
child: isTextOpen
? TextField()
: GestureDetector(
onTap: ()
setState(()
isTextOpen = true;
kapaac = 1;
);
,
child: Text(
"User_007",
style: TextStyle(
color: Colors.deepOrangeAccent,
fontSize: 16.0,
fontWeight: FontWeight.bold,
),
),
),
),
【问题讨论】:
您好,您需要在 setstate 中调用 isTextOpen = !isTextOpen。并且您必须将 istextopen false 初始化为默认 başkan hep true vermişsin isTextOpen'a。 Yani 她的 tıkladığında expande etmeye çalışıyor。扩展 edilmişse false,扩展 edilmemişse true olmalı。 嗨,它已经 int isTextopen 为假。 Baskan ben de false zaten tam anlayamadım çokyeniyim kodlamada 我知道,但您需要将 istextOpen = true 替换为 isTextOpen = !isTextOpen...abi istextopen = true yazan yeri istextOpen = !istextOpen olarak değiştir düzelcek :) 我已经从之前的评论中改变了这一点:) 扩展的容器仍然没有缩小到初始大小。 Onu yapmıştım zaten başkası aşağıda yazmış da düzelmedi valla :( 【参考方案1】:您没有将其设置回 false。
setState(() => isTextOpen = !isTextOpen);
【讨论】:
抱歉,我真的很新。我应该把你的代码放在哪里? 在你的 onTap 中,替换 isTextOpen = true;与 isTextOpen = !isTextOpen; 谢谢,我试过了,但没有任何改变。已经是假的了。【参考方案2】:一旦用户单击文本框,如果您想将文本框大小恢复为初始大小,那么您需要定义一个具有扩展大小的双变量,然后一旦用户单击文本框输入您需要重置的文本变量
double animatedContainerSize = 200;
然后使用变量设置 AnimatedContainer 小部件宽度
width: isTextOpen ? animatedContainerSize : 95,
然后在您的文本框 onTap 函数中使用 setState 将大小更改为初始大小
isTextOpen
? TextField(
onTap: ()
setState(()
animatedContainerSize = 95;
);
,
)
【讨论】:
我无法编写 double animatedContainerSize = 200;任何地方。我应该先放在哪里它不接受 你应该把它写在构建方法之上以上是关于想要通过单击将动画容器再次变小到初始大小。它完美扩展,但我无法再次关闭它的主要内容,如果未能解决你的问题,请参考以下文章