build method

Widget build()

Implementation

Widget build() {
  if (_list.length == 0) {
    return RefreshIndicator(
      child: Scrollbar(
        controller: scrollController,
        child: Container(
          child: Stack(
            children: [
              ListView(),
              buildBlank(),
            ],
          ),
        ),
      ),
      onRefresh: _doRefresh,
    );
  }
  return RefreshIndicator(
    child: Scrollbar(
      controller: scrollController,
      child: SafeArea(
        child: Column(
          children: [
            Expanded(
              child: ListView.builder(
                  physics: AlwaysScrollableScrollPhysics(),
                  controller: scrollController,
                  // 这里是列表数量,如果不添加不会显示,还会报错哦!
                  itemCount: _list.length,
                  // 使用构建器显示列表内容
                  itemBuilder: (BuildContext context, int index) {
                    // print("list index $index - ${list.length}");
                    // if (index == list.length) {
                    //   // return
                    // } else {
                    return onItemTap == null
                        ? Container(
                            height: height,
                            child: itemBuild(context, _list[index], index),
                          )
                        : Container(
                            height: height,
                            child: InkWell(
                              onTap: () => onItemTap!(_list[index], index),
                              // 列表布局
                              child: itemBuild(context, _list[index], index),
                            ),
                          );
                    // }
                  }),
            ),
            // Divider(),
            // 加载中,及加载状态区域
            ValueListenableBuilder(
                valueListenable: _isLoadingNotifier,
                builder: (BuildContext context, bool value, Widget? child) {
                  return Visibility(
                    visible: value,
                    child: Row(
                      mainAxisSize: MainAxisSize.max,
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: [
                        RefreshProgressIndicator(
                          color: Colors.blue,
                        ),
                        SizedBox(
                          width: 10,
                        ),
                        Center(child: Text("加载中")),
                      ],
                    ),
                  );
                }),
          ],
        ),
      ),
    ),
    onRefresh: _doRefresh,
  );
}