代码之家  ›  专栏  ›  技术社区  ›  Natesh bhat

在flatter中如何防止基于自定义逻辑的小部件重发?

  •  3
  • Natesh bhat  · 技术社区  · 7 年前

    来自react的背景,它有许多生命周期方法,我可以在其中决定是否重新提交组件。我最近遇到了性能问题,在颤振时,我有许多组件,因为它必须重新启动所有这些。

    1 回复  |  直到 7 年前
        1
  •  1
  •   dshukertjr    7 年前

    通常,当您由于呈现太多小部件而出现性能问题时,您使用的是ListView或GridView。可以通过使用ListView.builder()或GridView.builder()方法来防止此性能问题。ListView.builder和GridView.builder将只呈现屏幕上的小部件,从而防止性能问题。

    以下是一些示例:

    GridView.builder(
      gridDelegate:
          SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
      itemBuilder: (BuildContext context, int index) => _grid(data[index]),
    ) 
    

    使用ListView:

    ListView.builder(
      itemBuilder: (BuildContext context, int index) => _listItem(data[index]),
    )