flutter 2.5 更新后 listview 仅在移动平台上滚动。当我在网络上打开它时,它不会滚动。它在以前的版本中运行良好。我尝试了滚动物理,但它不起作用。你建议我做什么?对不起,我的英语不好。
return SizedBox(
height: 400,
child: ListView.builder(
physics: ClampingScrollPhysics(),
scrollDirection: Axis.horizontal,
// ignore: unnecessary_null_comparison
itemCount: items == null ? 0 : items.length,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
LoginForm();
},
child: Container(
margin:
EdgeInsets.symmetric(horizontal: 20, vertical: 6),
child: SizedBox(
width: 400,
height: 50,
child: Stack(
fit: StackFit.expand,
children: <Widget>[
Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.all(Radius.circular(20.0)),
boxShadow: [
BoxShadow(
color: fromCssColor(
items[index].color.toString()),
// color: Colors.black38,
offset: Offset(2.0, 2.0),
blurRadius: 5.0,
spreadRadius: 1.0)
]),
),
ClipRRect( …Run Code Online (Sandbox Code Playgroud) 我有一个WebView水平滚动里面的垂直滚动PageView。像这样:
PageView.builder(
itemCount: 5,
itemBuilder: (context, index) {
return WebView(
initialUrl: 'https://flutter.dev/docs',
gestureRecognizers: [
Factory(() => VerticalDragGestureRecognizer()),
].toSet(),
);
},
);
Run Code Online (Sandbox Code Playgroud)
在Flutter的先前稳定版本(1.5.4)中,此操作按预期工作-垂直滚动将在WebView中移动内容,水平滚动将在PageView中移动。
升级到Flutter后,此操作中断了v1.7.8+hotfix.3。现在,即使手势几乎完全是垂直的,水平滚动似乎总是可以取胜的。如果页面完全垂直滚动,则仅在手势停止之后(即,当我在手势之后停止触摸屏幕时)-在手势发生时不会进行垂直滚动。
添加和删除VerticalDragGestureRecognizer从gestureRecognizers没有任何效果现在-无论哪种方式,程序,工作起来就像识别器不在名单上(尽管这并不是说gestureRecognizers完全忽略,因为加入EagerGestureRecognizer确实有效果)。
这是手势竞技场的调试输出(请记住,我试图将笔势保持尽可能垂直,但是即使HorizontalDragGestureRecognizer我也垂直移动了手势,即使手指稍微向两侧移动也足以赢得胜利。全部时间):
I/flutter (30125): Gesture arena 14 ? ? Opening new gesture arena.
I/flutter (30125): Gesture arena 14 ? Adding: Instance of '_CombiningGestureArenaMember'
I/flutter (30125): Gesture arena 14 ? Adding: LongPressGestureRecognizer#9cad1(debugOwner: GestureDetector, state: ready)
I/flutter (30125): Gesture arena 14 ? Adding: …Run Code Online (Sandbox Code Playgroud) 我在垂直列表中添加水平列表视图。它不显示任何内容
@override
Widget build(BuildContext context) {
return Scaffold(
body: new ListView.builder(
itemCount: 3,
scrollDirection: Axis.vertical,
itemBuilder: (context, position) {
if (position == 0) {
return Container(
child: Text("First rwo"),
);
} else if (position == 1) {
return Container(
child: Text("second rwo"),
);
} else if (position == 2) {
return Container(
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: 4,
shrinkWrap: true,
itemBuilder: (context, pos) {
return Text("List ");
}));
}
}));
}
Run Code Online (Sandbox Code Playgroud)
当我将height属性添加到位置2时,container它可以工作。但是我想要动态高度。
SingleChildScrollView 是另一种选择,但不适用于无限列表。