滞后动画

时间:2018-07-26 16:20:38

标签: dart flutter

使用TabBar时,有人在屏幕之间转换时会感到迟钝吗,还是我使用错了?基本上我是通过在其他小部件中构建页面来按如下方式使用它的:

us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest

3 个答案:

答案 0 :(得分:3)

TabBarView不会在其中保存小部件的状态。每次重新出现在屏幕上时,都会对其进行重建。您可以通过在print()中为其中一个小部件添加initState()语句来检查此情况。要解决此问题,您可以使用AutomaticKeepAliveClientMixin

class SettingsPage extends StatefulWidget {
  SettingsPage({Key key}) : super(key: key);

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

class _SettingsPageState extends State<SettingsPage> with AutomaticKeepAliveClientMixin { //<-- AutomaticKeepAliveClientMixin

  @override
  bool get wantKeepAlive => true; //Set to true

  @override
  Widget build(BuildContext context) {
    super.build(context); //You must add this
    return Container(); //A screen here
  }
}

有了这个小小的改动,小部件就不会在每次回到屏幕时都重新构建

答案 1 :(得分:0)

您还没有使用过TabsController,也许它可以帮助您提高标签的性能。

TabController controller;

和initState()

controller = new TabController(length: 5, vsync: this);

在这里https://api.flutter.dev/flutter/material/TabController-class.html

答案 2 :(得分:0)

在发布模式下尝试您的应用程序:

flutter build apk

获取apk并将其安装在您的设备中(我通过驱动器完成) 并检查效果是否更好。

在调试模式下正常会有较差的体验。 调试模式不只是使用电缆进行调试的过程...还是一种APK。

我希望这项工作对您有用。