buildLiveRoomGridView static method

Widget buildLiveRoomGridView(
  1. BuildContext buildContext,
  2. List<LiveRoomModel>? liveRoomItemList, {
  3. ScrollPhysics? physics,
  4. bool shrinkWrap = false,
  5. String? emptyText,
  6. bool needShowEmptyView = true,
  7. dynamic onItemClicked(
    1. int
    )?,
  8. bool isInitFinish = true,
})

直播间列表 onItemClicked 如果传递,就交给调用层控制点击事件 isInitFinish 是否初始化完毕,没有就显示空白界面

Implementation

static Widget buildLiveRoomGridView(BuildContext buildContext, List<LiveRoomModel>? liveRoomItemList,
    {ScrollPhysics? physics,
    bool shrinkWrap = false,
    String? emptyText,
    bool needShowEmptyView = true,
    Function(int)? onItemClicked,
    bool isInitFinish = true}) {
  if (liveRoomItemList != null && liveRoomItemList.isNotEmpty) {
    int crossAxisCount = 2; // 一行显示多少个直播间列表
    return GridView.builder(
      padding: EdgeInsets.zero,
      shrinkWrap: shrinkWrap,
      physics: physics,
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
        crossAxisCount: crossAxisCount,
        childAspectRatio: 1.0,
        mainAxisSpacing: 8,
        crossAxisSpacing: 8,
      ),
      itemBuilder: (context, index) {
        return LiveRoomItem(
          data: liveRoomItemList[index],
          index: index,
          onItemClick: (index) =>
              {onItemClicked != null ? onItemClicked(index) : AudienceLiveRoomPage.startList(context, index, liveRoomItemList)},
        );
      },
      itemCount: liveRoomItemList.length,
    );
  } else {
    if (needShowEmptyView) {
      if (isInitFinish) {
        return CommonWidgetBuilder.buildListEmptyView(R.imageEmptyNoanchor3X, emptyText ?? Strings.anchorComingSoon.tr);
      } else {
        return Container();
      }
    } else {
      return Container();
    }
  }
}