Listview 如何在颤振中准确使用ListWheelScrollView?
我看到了,我想为我在大学的最后一个项目实现Listview 如何在颤振中准确使用ListWheelScrollView?,listview,dart,flutter,Listview,Dart,Flutter,我看到了,我想为我在大学的最后一个项目实现ListWheelScrollView。但是,它不符合作者的代码,我找不到确切的问题所在。我怎样才能像下面的动画 我的代码与author相同,但不起作用 build()search\u screen.dart的功能 小部件构建(构建上下文){ orientionfixer.fixtrait(); 返回淡入淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出( 主体:容器( 宽度:double.in
ListWheelScrollView
。但是,它不符合作者的代码,我找不到确切的问题所在。我怎样才能像下面的动画
我的代码与author相同,但不起作用
build()
search\u screen.dart的功能
小部件构建(构建上下文){
orientionfixer.fixtrait();
返回淡入淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出(
主体:容器(
宽度:double.infinity,
装饰:盒子装饰(
图像:装饰图像(
图片:AssetImage('assets/images/cinema.jpg'),
适合:BoxFit.cover,
颜色过滤器:颜色过滤器。模式(颜色。黑色。不透明度(0.6),混合模式。变暗)
),
),
孩子:BlocBuilder(
集团:搜索集团,
生成器:(上下文、状态){
如果(state.isKeyboardOn){
_searchAnimationController.forward();
}
if(state.isKeyboardOff&&u movieList.isEmpty){
_searchAnimationController.reverse();
_searchBarController.clear();
}
if(state.ismoviecalsuccessed){
_movieList=state.movieList;
}
如果(state.ismoviecrawlsucceed){
_searchBloc.dispatch(SearchEventStateClear());
BlocNavigator.push(上下文,
MaterialPage路线(生成器:()=>MovieScreen(movie:state.clickedMovie));
}
返回动画生成器(
动画:_liftup动画,
生成器:(上下文,小部件){
返回列(
儿童:[
SizedBox(高度:_liftUpAnimation.value),
搜索消息(
淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出,
liftUpAnimation:_liftUpAnimation
),
尺寸箱(高度:100.0),
纵队(
儿童:[
搜索栏(
searchBarController:\u searchBarController,
searchBloc:\u searchBloc,
),
容器(
身高:3.0,
宽度:MediaQuery.of(context).size.width*0.9,
颜色:颜色,白色,
)
],
),
搜索结果表单(
电影制作人:_电影制作人,
searchBloc:\u searchBloc,
)
],
);
}
);
}
),
),
);
}
搜索结果\u form.dart
类SearchResultForm扩展StatefulWidget{
最终电影演员名单;
最终搜索集团搜索集团;
const SearchResultForm({
关键点,
@需要这个电影列表,
@需要此.searchBloc
}):super(key:key);
@凌驾
_SearchResultFormState createState()=>\u SearchResultFormState();
}
类_SearchResultFormState扩展状态{
最终FixedExtentScrollController _controller=FixedExtentScrollController();
@凌驾
无效处置(){
_controller.dispose();
super.dispose();
}
@凌驾
小部件构建(构建上下文){
返回BlocBuilder(
bloc:widget.searchBloc,
生成器:(上下文、状态){
如果(state.isKeyboardOn){
返回SearchProcessingMessage(消息:'영화를 검색해주세요.');
}
if(state.ismoviecalloading){
返回SearchProcessingMessage(消息:'영화를 찾고 있습니다...');
}
if(state.ismoviecalsuccessed&&widget.movieList.isEmpty){
返回SearchProcessingMessage(消息:'찾으시는 영화가 없습니다.');
}
扩大回报(
子:ListWheelScrollView(
控制器:_控制器,
物理:FixedExtentScrollPhysics(),
项目范围:300.0,
子项:widget.movieList.map((movie)=>列(
儿童:[
搜索电影格式(
电影:电影,,
searchBloc:widget.searchBloc,
),
尺寸箱(高度:30.0)
],
))托利斯先生()
)
);
}
);
}
}
此代码适用于我。我为display ListWheelsColView创建了一个对话框。您可以根据使用情况修改此代码
List<String> nameList = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
void createScrollListDialog(BuildContext context) {
showCupertinoDialog(
context: context,
builder: (BuildContext ctx) {
return Container(
padding: EdgeInsets.all(10),
margin: EdgeInsets.only(top: 100, bottom: 100),
color: CupertinoColors.lightBackgroundGray,
child: ListWheelScrollView(
itemExtent: 40,
useMagnifier: true,
diameterRatio: 1.6,
children: <Widget>[
...nameList.map((String name) {
return Container(
width: double.infinity,
decoration: BoxDecoration(
color: CupertinoColors.white,
borderRadius: BorderRadius.circular(10),
border: Border.all(
width: 1, color: CupertinoColors.inactiveGray)),
padding: EdgeInsets.all(10),
child: Text(name),
);
})
]),
);
});}
List name List=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
void createScrollListDialog(BuildContext上下文){
showCupertinoDialog(
上下文:上下文,
生成器:(BuildContext ctx){
返回容器(
填充:边缘设置。全部(10),
边距:仅限边集(顶部:100,底部:100),
颜色:铜色。浅背景灰色,
子:ListWheelScrollView(
项目范围:40,
使用放大镜:正确,
直径比:1.6,
儿童:[
…nameList.map((字符串名称){
返回容器(
宽度:double.infinity,
装饰:盒子装饰(
颜色:铜色。白色,
边界半径:边界半径。圆形(10),
边界:边界(
宽度:1,颜色:铜色。不活动,
填充:边缘设置。全部(10),
子项:文本(名称),
);
})
]),
);
});}
此代码适用于我。我为display ListWheelsColView创建了一个对话框。您可以根据使用情况修改此代码
List<String> nameList = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
void createScrollListDialog(BuildContext context) {
showCupertinoDialog(
context: context,
builder: (BuildContext ctx) {
return Container(
padding: EdgeInsets.all(10),
margin: EdgeInsets.only(top: 100, bottom: 100),
color: CupertinoColors.lightBackgroundGray,
child: ListWheelScrollView(
itemExtent: 40,
useMagnifier: true,
diameterRatio: 1.6,
children: <Widget>[
...nameList.map((String name) {
return Container(
width: double.infinity,
decoration: BoxDecoration(
color: CupertinoColors.white,
borderRadius: BorderRadius.circular(10),
border: Border.all(
width: 1, color: CupertinoColors.inactiveGray)),
padding: EdgeInsets.all(10),
child: Text(name),
);
})
]),
);
});}
List name List=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
void createScrollListDialog(BuildContext上下文){
showCupertinoDialog(
上下文:上下文,
生成器:(BuildContext ctx){
返回容器(
填充:EdgeInsets.all
List<String> nameList = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
void createScrollListDialog(BuildContext context) {
showCupertinoDialog(
context: context,
builder: (BuildContext ctx) {
return Container(
padding: EdgeInsets.all(10),
margin: EdgeInsets.only(top: 100, bottom: 100),
color: CupertinoColors.lightBackgroundGray,
child: ListWheelScrollView(
itemExtent: 40,
useMagnifier: true,
diameterRatio: 1.6,
children: <Widget>[
...nameList.map((String name) {
return Container(
width: double.infinity,
decoration: BoxDecoration(
color: CupertinoColors.white,
borderRadius: BorderRadius.circular(10),
border: Border.all(
width: 1, color: CupertinoColors.inactiveGray)),
padding: EdgeInsets.all(10),
child: Text(name),
);
})
]),
);
});}