Как изменить цвет эффекта свечения прокрутки в ListView в Flutter? - PullRequest
0 голосов
/ 09 октября 2018

Как изменить цвет эффекта свечения ListView во флаттере?

Glow effect

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Другой вариант без использования темы может быть следующим:

1 - обернуть свой ListView внутри GlowingOverscrollIndicator

2 - обернуть GlowingOverscrollIndicator внутри ScrollConfiguration с новым поведением прокрутки

Здесь у вас есть:

  ScrollConfiguration(
            behavior: ScrollBehavior(),
            child: GlowingOverscrollIndicator(
              axisDirection: AxisDirection.down,
              color: Colors.yellow,
              child: ListView.builder(
                physics: ClampingScrollPhysics(),
                itemCount: 15,
                itemBuilder: (context, index) {
                  return ListTile(
                    title: Text("testing :$index"),
                  );
                },
              ),
            ),
          ),
0 голосов
/ 09 октября 2018

Чтение здесь для GlowingOverscrollIndicator похоже, что вы можете изменить значение ThemeData.accentColor, чтобы изменить цвет свечения с избыточной прокруткой.

Вы можете попробовать что-то подобное, чтобы ограничить Theme перейти на ListView только

//store the current Theme to restore it later
final ThemeData defaultTheme = Theme.of(context);

Theme(
  //Inherit the current Theme and override only the accentColor property
  data: Theme.of(context).copyWith(
    accentColor: Colors.yellow
  ),
  child: ListView.builder(
      //suppose data it's an array of strings
      itemBuilder: (BuildContext context, int index) =>
          EntryItem(data[index], defaultTheme),
      itemCount: data.length,
  ),
);

//this is your class to render rows
class EntryItem extends StatelessWidget {
  const EntryItem(this.entry, this.defaultTheme);

  final String entry;
  final ThemeData defaultTheme;

  Widget _buildTiles(String entry) {
    return Theme(
      data: defaultTheme,
      child: Text(entry)
    );
  }

  @override
  Widget build(BuildContext context) {
    return _buildTiles(entry);
  }
}

Подробнее о том, как стилизовать ваш Theme , можно прочитать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...