首页 > 解决方案 > 在颤振列表视图中检测焦点小部件

问题描述

我有一个水平的 listview.builder 小部件,列表中的每个孩子大约是总宽度的 90℅,我如何检测哪个小部件处于焦点。

这是我的小部件。

new ListView.builder(
                              scrollDirection: Axis.horizontal,
                              itemCount: categories.length,
                              itemBuilder: (context, index) {
                                return new InkWell(
                                  onTap: () {
                                    Navigator
                                        .of(context)
                                        .push(new MaterialPageRoute(
                                          builder: (_) => new StakePage(),
                                        ));
                                  },
                                  child: new Card(
                                    child: new Container(
                                      decoration: new BoxDecoration(
                                        image: new DecorationImage(
                                          fit: BoxFit.cover,
                                          image: categories[index].cover,
                                          colorFilter: new ColorFilter.mode(
                                              Colors.black12,
                                              BlendMode.screen),
                                        ),
                                      ),
                                      constraints: new BoxConstraints(
                                          maxWidth: 400.0,
                                          maxHeight: 600.0),
                                      height: size.height / 2,
                                      width: size.width * 0.85,
                                    ),
                                  ),
                                );
                              }),

看起来像这样

标签: listviewflutterflutter-layout

解决方案


你可以用 widget 包裹你的小visibility_detector部件,一旦你的小部件在屏幕上可见,它就会触发回调。


推荐阅读