我开始剖析我的应用程序启动时的状况,看起来侧面抽屉com.google.android.material.navigation.NavigationView
需要花很多时间才能充气。
由于启动应用程序时NavigationView被隐藏,因此我认为可以延迟其膨胀。
我试图检查ViewStub
或AsyncLayoutInflator
方法,但是窗台没有找到可行的方法来使这项工作有效。
有人成功异步初始化了NavigationView
吗?
更新:
我在NavigationView菜单项中使用矢量可绘制图标。看起来像是这里的瓶颈。矢量路径并不复杂,也许我会尝试简化它们或使用png的...
导航视图中是否需要从网络加载任何内容?如果是,则可以使用视图模型进行操作,并将数据托管在与该视图模型相关的托管活动中。这样做将无法加快导航抽屉的初始化速度,但可以保留填充数据所需的数据,因此下次不会花费那么长时间。这样,您也可以将网络操作推迟到首次打开导航抽屉时使用。