Flutter 如何在向上滚动时隐藏应用程序栏,但在向下滚动时显示?
我正试图实现我们在android WhatsApp中看到的行为,并在材料设计、检查建议和视频中建议选项卡行为 . 当我向下滚动时,我希望选项卡栏可见,但应用程序栏隐藏,这种行为也可以在中型android应用程序上看到 我看到有一个更早的答案,但它不适合我Flutter 如何在向上滚动时隐藏应用程序栏,但在向下滚动时显示?,flutter,dart,Flutter,Dart,我正试图实现我们在android WhatsApp中看到的行为,并在材料设计、检查建议和视频中建议选项卡行为 . 当我向下滚动时,我希望选项卡栏可见,但应用程序栏隐藏,这种行为也可以在中型android应用程序上看到 我看到有一个更早的答案,但它不适合我 return DefaultTabController( length: 2, child:Scaffold( body: NestedScrollView( headerSliverBuilder: (Build
return DefaultTabController(
length: 2,
child:Scaffold(
body: NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar(
title: Text("Application"),
floating: true,
pinned: true,
snap: true,
bottom: TabBar(
tabs: <Tab>[
Tab(text: "T"),
Tab(text: "B"),
], // <-- total of 2 tabs
),
),
];
},
body: TabBarView(
children: <Widget>[
RandomWords(),
RandomWords(),
],
),
),
),
);
我尝试了几种方法,但嵌套的滚动视图对我不起作用
return DefaultTabController(
length: 2,
child:Scaffold(
body: NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar(
title: Text("Application"),
floating: true,
pinned: true,
snap: true,
bottom: TabBar(
tabs: <Tab>[
Tab(text: "T"),
Tab(text: "B"),
], // <-- total of 2 tabs
),
),
];
},
body: TabBarView(
children: <Widget>[
RandomWords(),
RandomWords(),
],
),
),
),
);
返回DefaultTabController(
长度:2,
孩子:脚手架(
正文:嵌套滚动视图(
headerSliverBuilder:(BuildContext上下文,boolInnerBoxIsCrolled){
返回[
滑杆(
标题:文本(“申请”),
浮动:是的,
对,,
是的,
底部:选项卡栏(
选项卡:[
选项卡(文本:“T”),
选项卡(文本:“B”),
],//您可以使用SliverList和SliverAppBar试试这个
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 2,
child: new Scaffold(
body: new NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
new SliverAppBar(
title: Text("Application"),
floating: true,
pinned: true,
snap: true,
bottom: new TabBar(
tabs: <Tab>[
new Tab(text: "T"),
new Tab(text: "B"),
], // <-- total of 2 tabs
),
),
];
},
body: new TabBarView(
children: <Widget>[
Center(
child: Text(
'T Tab',
style: TextStyle(fontSize: 30),
)),
Center(
child: Text(
'B Tab',
style: TextStyle(fontSize: 30),
)),
],
),
),
),
);
}
}
导入“包装:颤振/材料.省道”;
void main()=>runApp(新的MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回新材料PP(
标题:“颤振演示”,
主题:新主题数据(
主样本:颜色。蓝色,
),
主页:新建MyHomePage(),
);
}
}
类MyHomePage扩展StatefulWidget{
@凌驾
_MyHomePageState createState()=>new_MyHomePageState();
}
类_MyHomePageState扩展状态{
@凌驾
小部件构建(构建上下文){
返回DefaultTabController(
长度:2,
儿童:新脚手架(
正文:新嵌套滚动视图(
headerSliverBuilder:(BuildContext上下文,boolInnerBoxIsCrolled){
返回[
新滑杆(
标题:文本(“申请”),
浮动:是的,
对,,
是的,
底部:新选项卡栏(
选项卡:[
新选项卡(文本:“T”),
新选项卡(文本:“B”),
],//您可以添加您尝试过的代码吗?@jitsm555完成。尝试设置floating:false,pinted:false,snap:false发生了什么事?您可以链接视频吗?@GenchiGenbutsu我正在加载到选项卡中的小部件似乎有问题。因此,虽然这本身只适用于选项卡中的文本,但当我尝试加载自己的小部件时,它不起作用滚动显示基本行为是小部件显示一个加载json文件的列表,当有人单击列表中的某个条目时,我会将其导航到一个新页面。