首页 > 解决方案 > 包装在 Flutter 上

问题描述

我正在尝试获取小部件布局和包装的逻辑。这部分对我来说并不容易。

我有一个从 JSON 获取新闻的工作主页。我正在尝试将类别集成为可滚动的文本选项卡,但在此代码中我收到 4 个错误,主要是 ) 或 } 的错误位置

这是代码:

class NewsView extends StatefulWidget {
  const NewsView({Key? key}) : super(key: key);

  @override
  _NewsViewState createState() => _NewsViewState();
}

class _NewsViewState extends State<NewsView> {
  final _newsService = NewsService();
  late Future<Articles> _futureArticles;

  @override
  void initState() {
    _futureArticles = _newsService.getArticles();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
  length: 3,
  child: Scaffold(
    appBar: AppBar(
      bottom: TabBar(
        tabs: [
          Tab(icon: Icon(Icons.flight)),
          Tab(icon: Icon(Icons.directions_transit)),
          Tab(icon: Icon(Icons.directions_car)),
        ],
      ),
      title: Text('Tabs Demo'),
    ),
    body: TabBarView(
      children: [
        Icon(Icons.flight, size: 350),
        Icon(Icons.directions_transit, size: 350),
        Icon(Icons.directions_car, size: 350),
      ],
    ),
  ),
);


        
  
      body: Container(
        padding: const EdgeInsets.all(
          10.0,
        ),
        child: FutureBuilder<Articles>(
          future: _futureArticles,
          builder: (BuildContext context, AsyncSnapshot<Articles> snapshot) {
            if (snapshot.hasData) {
              final articles = snapshot.data?.data;

              return ListView.builder(
                  itemCount: articles!.length,
                  itemBuilder: (BuildContext context, int index) =>
                      customListTile(articles, index, context));
            } else if (snapshot.hasError) {
              return NewsError(
                errorMessage: '${snapshot.hasError}',
              );
            } else {
              return const NewsLoading(
                text: 'Loading...',
              );
            }
          },
        ),
      )
    );
  }
}

顺便说一句:有没有办法更好地查看 VSCode 上的此类错误?当然它说例如第 80 行期待),但它没有帮助。也许还有其他方法可以做到。对我来说理解包装逻辑真的很复杂。

有什么帮助吗?

标签: flutterdart

解决方案


推荐阅读