gpt4 book ai didi

Flutter - 在额外滚动条上显示行 - 列顶部(就像 Whatsapp 存档的聊天记录)

转载 作者:行者123 更新时间:2023-12-05 04:44:03 25 4
gpt4 key购买 nike

我想在一列之上放置一行,这一开始是不可见的。只有当 SingleChildScrollview 的滚动偏移量为负数时才会可见。

换句话说,只有当用户滚动比正常情况(向下运动)更远时,该行才会显示。这是 Whatsapp 中的示例。 “搜索框”小部件最初不会显示,只有当您向上滚动时才会显示,一旦向下滚动就会消失。

enter image description here

更新

使用@Lulupointu 的回答,我能够做到这一点: enter image description here

顶部小部件以流畅的动画滚动显示和隐藏。@Hooshyar 的回答也有效,但不太流畅,并且使用了不同的方法。

最佳答案

在这里使用 singleChildScrollView 是我使用 s NotificationListener() 小部件想到的,还有其他解决方案,但这是最简单的一个:

有一个 bool 值来确定容器可见性:

  bool shouldIShowTheUpperThing = false;

用 NotificationListener() 包装您的 SingleChildScrollView() :

NotificationListener(
child: SingleChildScrollView(
child: Column(
children: [
shouldIShowTheUpperThing == false ? Row(
children: [
Container(height: 0,),
],
) : Row(
children: [
Expanded(child: Container(color: Colors.red , height: 100 , child: Text('the hidden box'),)),
],
),
Container(
padding: EdgeInsets.all(130),
child: Text('data'),
color: Colors.blueGrey,
),
Container(
padding: EdgeInsets.all(130),
child: Text('data'),
color: Colors.blueAccent,
),
Container(
padding: EdgeInsets.all(130),
child: Text('data'),
color: Colors.amber,
),
Container(
padding: EdgeInsets.all(130),
child: Text('data'),
color: Colors.black12,
),
Container(
padding: EdgeInsets.all(130),
child: Text('data'),
),
],
),
),

onNotification: (t) {
if (t is ScrollNotification) {
if (t.metrics.pixels < 1.0) {
setState(() {
shouldIShowTheUpperThing = true;
});
}
}
return true;
});
}

关于Flutter - 在额外滚动条上显示行 - 列顶部(就像 Whatsapp 存档的聊天记录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69451282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com