代码之家  ›  专栏  ›  技术社区  ›  iPatel

Flutter iPhone XR CustomScrollView with Sliver widget(s)scroll问题

  •  4
  • iPatel  · 技术社区  · 6 年前

    我没有检查真正的设备,但测试模拟器。

    我把一些银条编码进去了 CustomScrollView . 请看下面的代码。当我运行代码片段时,当在模拟器中向上向下滚动时,我面对的屏幕不会平滑滚动 iPhone XR。 在检查了其他的模拟器之后,一切正常吗?下面的代码有什么问题吗?我不这么认为,否则我就不会在其他模拟器上工作了?

    import 'package:flutter/material.dart';
    
    class AnimalWidget extends StatefulWidget {
      _AnimalWidgetState createState() => _AnimalWidgetState();
    }
    
    class _AnimalWidgetState extends State<AnimalWidget> {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: CustomScrollView(
            slivers: <Widget>[
              SliverAppBar(
                expandedHeight: 210,
                pinned: true,
                flexibleSpace: FlexibleSpaceBar(
                  background: Image.network(
                      'https://static.independent.co.uk/s3fs-public/thumbnails/image/2017/09/12/11/naturo-monkey-selfie.jpg?w968h681',
                      fit: BoxFit.cover),
                  title: Text('Animals Dashboard'),
                ),
              ),
              SliverToBoxAdapter(
                child: Container(
                  margin: EdgeInsets.only(left: 8, top: 12, right: 8),
                  child: Card(
                    elevation: 4,
                    child: Container(
                      margin: EdgeInsets.only(left: 8, top: 8, right: 8, bottom: 8),
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.stretch,
                        children: <Widget>[
                          Container(
                            decoration: BoxDecoration(
                                border: Border.all(
                                    color: Theme.of(context).primaryColor,
                                    width: 1,
                                    style: BorderStyle.solid)),
                            child: ListTile(
                              leading: Icon(Icons.fastfood,
                                  color: Theme.of(context).primaryColor, size: 30),
                              title: Text(
                                "Monkey",
                                style: TextStyle(
                                    color: Theme.of(context).primaryColor),
                              ),
                              trailing: Icon(
                                Icons.arrow_drop_down,
                                color: Theme.of(context).primaryColor,
                                size: 40,
                              ),
                              onTap: () {},
                            ),
                          ),
                          SizedBox(
                            height: 15,
                          ),
                          Container(
                            decoration: BoxDecoration(
                                border: Border.all(
                                    color: Theme.of(context).primaryColor,
                                    width: 1,
                                    style: BorderStyle.solid)),
                            child: ListTile(
                              leading: Icon(Icons.local_florist,
                                  color: Theme.of(context).primaryColor, size: 30),
                              title: Text(
                                "Donkey",
                                style: TextStyle(
                                    color: Theme.of(context).primaryColor),
                              ),
                              trailing: Icon(
                                Icons.arrow_drop_down,
                                color: Theme.of(context).primaryColor,
                                size: 40,
                              ),
                              onTap: () {},
                            ),
                          ),
                          SizedBox(
                            height: 15,
                          ),
                          Container(
                            decoration: BoxDecoration(
                                border: Border.all(
                                    color: Theme.of(context).primaryColor,
                                    width: 1,
                                    style: BorderStyle.solid)),
                            child: ListTile(
                              leading: Icon(Icons.find_replace,
                                  color: Theme.of(context).primaryColor, size: 30),
                              title: Text(
                                "Camel",
                                style: TextStyle(
                                    color: Theme.of(context).primaryColor),
                              ),
                              trailing: Icon(
                                Icons.arrow_drop_down,
                                color: Theme.of(context).primaryColor,
                                size: 40,
                              ),
                              onTap: () {},
                            ),
                          ),
                          SizedBox(height: 15),
                          Container(
                              height: 50,
                              color: Colors.teal,
                              child: FlatButton(
                                onPressed: () {},
                                color: Theme.of(context).primaryColor,
                                child: Text('SELECT ANIMAL',
                                    style: TextStyle(
                                        color: Colors.white,
                                        fontSize: 16,
                                        fontWeight: FontWeight.w600)),
                              )),
                          SizedBox(height: 15),
                        ],
                      ),
                    ),
                  ),
                ),
              ),
              SliverList(delegate: SliverChildBuilderDelegate(
                (BuildContext context, int index) {
                  return ListTile(
                    leading: CircleAvatar(
                      child: Text(
                        'A',
                        style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
                        textAlign: TextAlign.center,
                      ),
                    ),
                    title: Text('Animal => $index'),
                  );
                },
              )),
            ],
          ),
        );
      }
    }
    

    对于它,检查只是复制和粘贴代码。

    1 回复  |  直到 6 年前
        1
  •  0
  •   westdabestdb    6 年前

    可能是仿真器的问题。我在iPhone X模拟器、Pixel 2XL模拟器和我真正的Pixel 3XL设备上测试了你的代码。当我停止滚动时,iPhone X仿真器就像页面滚动一样迟缓,而2XL仿真器则像预期的那样正常。同样3XL真实设备是正常的预期。

    推荐文章