Flutter CustomScrollView未检测到滚动
我是个新手,不知道有没有人能帮我找个卷轴修理工。我第一次试用了Flutter CustomScrollView未检测到滚动,flutter,customscrollview,Flutter,Customscrollview,我是个新手,不知道有没有人能帮我找个卷轴修理工。我第一次试用了SliverAppBar,它可以正确地处理滑杆本身的运动。但是,我有一个ListView.builder,它构建了我放在SliverFill中的小部件,并且它没有检测到列表的移动。任何帮助都将不胜感激 return Scaffold( body: CustomScrollView( slivers: <Widget>[ SliverAppBar(
SliverAppBar
,它可以正确地处理滑杆本身的运动。但是,我有一个ListView.builder
,它构建了我放在SliverFill中的小部件,并且它没有检测到列表的移动。任何帮助都将不胜感激
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
title: Row(
children: <Widget>[
Text('appName')],),
expandedHeight: 110,
floating: true,
pinned: true,
flexibleSpace: FlexibleSpaceBar(
background: Container(
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Text('my text 1', style: TextStyle(
fontFamily: 'OpenSans',
),
softWrap: true,),
Text('my Text', style: TextStyle(
fontFamily: 'OpenSans',
),),],),),),),),
SliverFillRemaining(
hasScrollBody: true,
child: Container(
child: NoteList(
items: items,
),
),
)
],
),
返回脚手架(
正文:自定义滚动视图(
条子:[
滑杆(
标题:世界其他地区(
儿童:[
文本('appName')],),
扩展高度:110,
浮动:是的,
对,,
flexibleSpace:FlexibleSpaceBar(
背景:集装箱(
孩子:填充(
填充:常数边集全部(20.0),
子:列(
crossAxisAlignment:crossAxisAlignment.start,
mainAxisAlignment:mainAxisAlignment.end,
儿童:[
文本(“我的文本1”,样式:TextStyle(
fontFamily:“OpenSans”,
),
软包装:正确,),
文本(“我的文本”,样式:TextStyle(
fontFamily:“OpenSans”,
),),],),),),),),
剩余碎片(
哈斯克罗博迪:没错,
子:容器(
孩子:记事本(
项目:项目,,
),
),
)
],
),
记事本
class NoteList extends StatelessWidget {
const NoteList({
@required this.items,
});
final List<Note> items;
Future _navigateToNote(BuildContext context, Note note) => Navigator.push(
context,
MaterialPageRoute(builder: (context) => NoteScreen(note)),
);
Widget _itemBuilder(BuildContext context, int position) {
final cardShape = const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(0)),
);
return Padding(
padding: const EdgeInsets.only(top:0, bottom: 0),
child: Card(
shape: cardShape,
child: InkWell(
onTap: () => _navigateToNote(context, items[position]),
customBorder: cardShape,
child: Padding(
padding: const EdgeInsets.all(2.0),
child: Column(
children: <Widget>[
ListTile(
title: Text('${items[position].theItem}',
),
),
],
),
),
),
),
);
}
@override
Widget build(BuildContext context) {
return Scrollbar(
child: ListView.builder(
itemCount: items.length,
padding: const EdgeInsets.only(left: 2, right: 2),
itemBuilder: _itemBuilder,
),
);
}
}
类注释列表扩展了无状态小部件{
常量注释列表({
@需要此项,
});
最后清单项目;
Future _navigateNote(BuildContext上下文,Note Note)=>Navigator.push(
上下文
MaterialPage路线(生成器:(上下文)=>NoteScreen(备注)),
);
Widget\u itemBuilder(构建上下文,int位置){
最终cardShape=常量RoundedRectangleBorder(
borderRadius:borderRadius.all(半径.圆形(0)),
);
返回填充(
填充:仅限常量边集(顶部:0,底部:0),
孩子:卡片(
形状:卡片形状,
孩子:InkWell(
onTap:()=>\u导航注释(上下文、项[位置],
customBorder:cardShape,
孩子:填充(
填充:常数边集全部(2.0),
子:列(
儿童:[
列表砖(
标题:文本(“${items[position].Iteem}”,
),
),
],
),
),
),
),
);
}
@凌驾
小部件构建(构建上下文){
返回滚动条(
子项:ListView.builder(
itemCount:items.length,
填充:仅限常量边集(左:2,右:2),
itemBuilder:\u itemBuilder,
),
);
}
}
您在CustomScrollView
内部使用的是ListView
。两者都是可滚动的,因此会发生冲突
要解决此问题,请将ListView
替换为SliverList
——用于显示CustomScrollView
中项目列表的特殊小部件
sliverfill剩余的
在这里不需要,因此代码为:
脚手架(
正文:自定义滚动视图(
条子:[
滑杆(
...
),
银表(
代表:SliverChildBuilderDelegate(
(上下文,索引)=>卡片(
//任何嵌套的小部件
孩子:ListTile(
标题:文本(项目[索引].名称),
),
),
childCount:items.length,
),
),
],
),
);
谢谢!我看到我以前试过sliverlist,但没有成功。非常感谢您的帮助