flutter 应用程序出现异常我该如何解决?

问题描述 投票:0回答:1

FlutterError(RenderRepaintBoundary 需要一个子类型 RenderBox 但收到了 RenderSliverToBoxAdapter 类型的子级。 RenderObjects 期望特定类型的子对象,因为它们 在布局和绘画过程中与孩子协调。例如,一个 RenderSliver 不能是 RenderBox 的子级,因为 RenderSliver 不理解 RenderBox 布局协议。

创建了需要 RenderBox 子级的 RenderRepaintBoundary 作者:RepaintBoundary ← IndexedSemantics ← _SelectionKeepAlive ← 通知监听器 ← 保持活动 ← 自动保持活动 ← KeyedSubtree ← SliverList ← 视口 ← IgnorePointer-[GlobalKey#4ddb3] ← 语义 ← 监听器 ← ⋯

RenderSliverToBoxAdapter 与预期子项不匹配 类型创建者:SliverToBoxAdapter ← News_List_View ← RepaintBoundary ← IndexedSemantics ← _SelectionKeepAlive ← 通知监听器 ← 保持活动 ← 自动保持活动 ← KeyedSubtree ← SliverList ← 视口 ← 忽略指针-[GlobalKey#4ddb3] ← ⋯)

这是我的代码,我已经使用过

SliverToBoxAdapter
但是这个异常仍然

 @override
 Widget build(BuildContext context) {
    return isLoading
        ? const  SliverToBoxAdapter(
          child: Center(child:CircularProgressIndicator()))
        : SliverList(
            delegate: SliverChildBuilderDelegate(childCount: articles.length,
                (context, index) {
            return Padding(
              padding: const EdgeInsets.only(bottom: 22),
              child: NewsTile(
                articleModel: articles[index],
              ),
            );
          }));
  }
}
flutter dart exception render customscrollview
1个回答
0
投票

你必须这样使用

@override
Widget build(BuildContext context) {
  return CustomScrollView(
    slivers: [
      SliverToBoxAdapter(
        child: isLoading
            ? Center(child: CircularProgressIndicator())
            : SizedBox.shrink(), // Return an empty widget if not loading
      ),
      SliverList(
        delegate: SliverChildBuilderDelegate(
          childCount: articles.length,
          (context, index) {
            return Padding(
              padding: const EdgeInsets.only(bottom: 22),
              child: NewsTile(
                articleModel: articles[index],
              ),
            );
          },
        ),
      ),
    ],
  );
}
© www.soinside.com 2019 - 2024. All rights reserved.