Flutter iPhone XR CustomScrollView с проблемой прокрутки виджетов Sliver - PullRequest
0 голосов
/ 08 января 2019

Я не проверю реальное устройство, но тестирую симуляторы.

У меня есть код некоторых Щепок (ов) в 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 Ответ

0 голосов
/ 08 января 2019

Это наверное про эмулятор. Я проверил ваш код на эмуляторе iPhone X, эмуляторе Pixel 2XL и на моем реальном устройстве Pixel 3XL. Эмулятор iPhone X работал медленно, как при прокрутке страницы, когда я прекратил прокрутку, а эмулятор 2XL был нормальным, как и ожидалось. Также реальное устройство 3XL было нормальным, как и ожидалось.

...