【问题标题】:Expandable AppBar (onPressed)可扩展的 AppBar (onPressed)
【发布时间】:2021-01-27 19:43:36
【问题描述】:

如何实现这种效果?我想在点击日期后展开我的 AppBar。

【问题讨论】:

  • 您可以使用SliverAppBar 来实现。
  • SliverAppBar 是否允许您禁用滚动?因为我不想通过滚动来展开/折叠AppBar
  • 在这种情况下使用 AppBar 的底部属性。当它关闭时,您将小部件替换为空容器,然后当它打开时将您的小部件放在那里
  • @ConstantinN。您可以根据需要打开/关闭“底部”属性吗?
  • 当然。请参阅下面的答案

标签: flutter flutter-appbar


【解决方案1】:

最简单的方法是带上一个可验证的开关,然后更改bottom 小部件的高度。

Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
        actions: [IconButton(icon: Icon(Icons.place),onPressed: (){
          setState((){
            isOpen = !isOpen;
          });
        })],
        bottom: PreferredSize(child: isOpen? Container(color:Colors.red, height: 100):Container(),preferredSize:Size.fromHeight(isOpen? 100:0) ,)
      ),)

【讨论】:

  • 好的,乍一看,这似乎可行。最后一个问题:您可以为这些更改设置动画吗?例如“底部”属性的打开/关闭。 (我是 Flutter 新手,请多多包涵:D)
  • 是的,你可以。但是如果你不熟悉Animations,那就有点复杂了。如果您熟悉它,您只需100*animation.value 即可获得高度
  • 我还在测试这是否可行,你去吧:)
  • @ConstantinN。这很好但是我想在isOpen = true时分别更改动作的图标?如何做到这一点?
  • IconButton(icon:isOpen?Icons.pause:Icons.play)
猜你喜欢
  • 2021-04-16
  • 2022-01-09
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多