Обновить индикатор без прокрутки - PullRequest
0 голосов
/ 06 мая 2018

Я знаю, что ListView или SingleChildScrollView RefreshIndicator просто работает изначально, но я хочу использовать RefreshIndicator на странице, которая не прокручивается. Возможно ли это вообще, и если да, то как?

Ответы [ 3 ]

0 голосов
/ 06 мая 2018

Вы должны сделать следующее:

  • Используйте SingleChildScrollView со свойством physics, установленным на AlwaysScrollableScrollPhysics().
  • Убедитесь, что его дочерний элемент имеет высоту экрана, которую вы можете получить с помощью MediaQuery.of(context).size.height.

Полный пример:

classs MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return RefreshIndicator(
      onRefresh: () {},
      child: SingleChildScrollView(
        physics: AlwaysScrollableScrollPhysics(),
        child: Container(
          child: Center(
            child: Text('Hello World'),
          ),
          height: MediaQuery.of(context).size.height,
        ),
      ),
    );
  }
}
0 голосов
/ 20 февраля 2019

Так что в моем случае я хотел отобразить заполнитель в пустом списке:

          RefreshIndicator(
            child: Stack(
              children: <Widget>[
                Center(
                  child: Text("The list is empty"),
                ),
                ListView()
              ],
            ),
            onRefresh: () {},
          )
0 голосов
/ 06 мая 2018

Возможно ли это без страницы, которая не прокручивается?

-Нет.


Пожалуйста, прочитайте документацию по параметру child в RefreshIndicator:

Виджет под этим виджетом в дереве.

Индикатор обновления будет размещен поверх этого дочернего элемента. Индикатор появится, если прокручиваемый потомок ребенка перебран.

Обычно это [ListView] или [CustomScrollView].


Есть ли обходной путь?

* Да * 1023

Вы можете поместить только один виджет в список детей Listview:

new RefreshIndicator(
  child: new ListView(
    children: <Widget>[
      new Text('This is child with refresh indicator'),
    ],
  ),
  onRefresh: () {},
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...