我正在使用 ViewPager 在不同的片段之间滚动。有两种类型的片段,使用两种不同的菜单资源。我正在使菜单无效,以便在必要时在这些资源之间切换。这一切都很好,但是菜单被“重绘”而没有动画。
为了避免弄乱单个菜单项,我希望我可以在新菜单加载时短暂隐藏 ActionBar,并在完成后显示它。这也可以按预期工作,但是在切换 ActionBar 时会调整活动的大小。
有什么办法可以防止这种情况发生,或者隐藏菜单资源之间的丑陋过渡?
我正在使用 ViewPager 在不同的片段之间滚动。有两种类型的片段,使用两种不同的菜单资源。我正在使菜单无效,以便在必要时在这些资源之间切换。这一切都很好,但是菜单被“重绘”而没有动画。
为了避免弄乱单个菜单项,我希望我可以在新菜单加载时短暂隐藏 ActionBar,并在完成后显示它。这也可以按预期工作,但是在切换 ActionBar 时会调整活动的大小。
有什么办法可以防止这种情况发生,或者隐藏菜单资源之间的丑陋过渡?
我没有完全理解您问题的菜单部分,但是有一个简单的解决方案可以防止您的活动在 ActionBar 出现或消失时调整大小。
您可以告诉 ActionBar 在覆盖模式下绘制自己,这意味着它将浮动在活动的顶部,而不是实际成为活动布局的一部分。android:windowActionBarOverlay
在您的主题或代码中使用标志Window.FEATURE_ACTION_BAR_OVERLAY
。
您可能希望将此功能与actionBarSize
常量一起使用,该常量为布局中的第一个视图指定正确的偏移量。这样,您的内容仍然显示在 ActionBar 下方,但由于 ActionBar 本身是一个覆盖层,因此在隐藏/显示它时,活动不会调整大小。
<SomeView
...
android:layout_marginTop="?android:attr/actionBarSize" />
更多细节可以在文档中找到。