我正在开发一个使用抽屉式导航模式(With DrawerLayout)的应用程序。
每次点击抽屉的项目,都会替换主容器中的 fragment 。
但是,我不确定何时是进行 fragment 交易的合适时间? 抽屉什么时候开始关闭?还是关门后?
在谷歌的 documentaion example ,你可以看到他们正在做交易
在项目单击后立即关闭抽屉。
结果,抽屉显得迟钝且不光滑,而且看起来很糟糕(我的应用程序中也出现过这种情况)。
在 Gmail和 Google Drive另一方面,应用程序似乎在抽屉关闭后进行交易(我对吗?)。
因此,抽屉并不滞后且非常流畅,但至少需要大约 1 秒(抽屉关闭所需的时间)才能看到下一个 fragment 。
在立即进行 FragmentTransaction 时,抽屉似乎不可能平滑。
你怎么看?
提前致谢!
最佳答案
是的,完全同意,执行 fragment (带 View )事务会导致布局传递,这会导致动画 View 上的动画出现卡顿,引用 DrawerLayout
docs :
DrawerLayout.DrawerListener can be used to monitor the state and motion of drawer views. Avoid performing expensive operations such as layout during animation as it can cause stuttering; try to perform expensive operations during the STATE_IDLE state.
所以请在抽屉关闭或有人修补支持库以某种方式修复该问题后执行您的 fragment 事务:)
关于android - DrawerLayout 的 item click - 什么时候替换 Fragment 合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17491557/