【发布时间】:2020-08-06 09:48:09
【问题描述】:
我在SingleChildScrollView 下有以下代码。我使用了IgnorePointer,所以我可以使滚动工作。但现在我无法让GestureDetector 工作,因为IgnorePointer 正在阻止它。
当我删除 IgnorePointer 时,GestureDetector 工作。我可以使用其他方式使滚动工作,或者使GestureDetector 在IgnorePointer 内工作吗?
IgnorePointer(
child:
Padding(
padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
child: Container(
child: FutureBuilder(
future: fetchfiveWpPosts(),
builder: (context,snapshot){
if(snapshot.hasData){
return ListView.builder(
itemCount: snapshot.data.length,
shrinkWrap: true,
scrollDirection: Axis.vertical,
itemBuilder: (BuildContext context, int index){
Map wppost = snapshot.data[index];
var imageurl = wppost['acf']['store_logo']['url'];
return GestureDetector(
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => Detail()));
},
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Card(
child:
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
//Image.network(imageurl),
Container(
//height: 170,
child:
FadeInImage.assetNetwork(placeholder: 'assets/loading.gif', image: imageurl,
height: 170,
fit: BoxFit.fill,),
),
Padding(
padding: EdgeInsets.fromLTRB(10, 5, 5, 10),
child: Text(wppost['title']['rendered'], style: TextStyle(fontSize: 25, fontWeight: FontWeight.w600, color: Colors.blueAccent,),),
),
],
),
),
),
);
},
);
}
return CircularProgressIndicator();
},
),
),
),
),
【问题讨论】:
-
所以不要使用
IgnorePointer- 我不知道你为什么这样做 -
如果我删除 IgnorePointer,滚动不起作用。整个代码在 SingleChildScrollView 下。
-
不,
SingleChildScrollView在没有IgnorePointer的情况下也可以正常工作 - 如果您的情况是ListView.builder在SingleChildScrollView内,那么您必须使用不同的方法,因为ListView.builder在那里毫无意义跨度> -
好的,谢谢。你能提出一些建议吗?我是 Flutter 的新手
标签: flutter