Как включить перетаскивание списка во Flutter Web?

Есть ли способ заставить перетаскивание курсора вниз работать для прокручиваемых представлений во Flutter Web?

В следующем примере создается ListView, который можно перетаскивать вертикально. При запуске в эмуляторе Android я получаю следующие эффекты перетаскивания:

  1. при касании / мыши вниз и перетаскивании: список следует за курсором пальца / мыши.
  2. при отпускании касания / мыши список переключается с некоторой инерцией, заданной физикой

Отлично. А вот для flutter web я получаю только 2, а не 1. То есть движение есть только при отпускании курсора мыши. Это ужасно.

Есть ли уловка для включения перетаскивания списков во Flutter Web или это ошибка?

(Верно, что перетаскивание не является поведением по умолчанию в большинстве прокручиваемых веб-представлений. Однако, если это правда, тогда flutter должен предлагать API для включения / отключения броска без настройки конкретной платформы).

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  MyApp({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {

    final scrollController = ScrollController();
    Widget child = ListView.builder(
      physics: ScrollPhysics(),
      controller: scrollController,
      itemCount: 500,
      itemBuilder: rowContent,
    );

    return MaterialApp(
        debugShowCheckedModeBanner: false,
        title: 'MyApp',
        home: Container(
            color: Colors.blue,
            child: child));
  }
}

final textStyle = TextStyle(
    color: Colors.black,
    decoration: TextDecoration.none,
    fontSize: 12,
    fontStyle: FontStyle.normal);

Widget rowContent(BuildContext context, int i, [int j = 0]) {

  return Text(
      "$i:  $j: abcdef abcdef abcdef abcdef abcdef abcdef abcdef abcdef abcdef abcdef abcdef abcdef",
      style: textStyle);
}

0 ответов

Другие вопросы по тегам