我正在使用ViewPager在不同的片段之间滚动。使用两种不同的菜单资源有两种类型的片段。我正在使菜单无效,以便在必要时在这些资源之间切换。这一切都运作良好,但菜单是“重绘”而没有动画。
为了防止不得不混淆单个MenuItems,我希望我可以在加载新菜单时暂时隐藏ActionBar,并在完成后显示它。这也是预期的,但是当ActionBar切换时,活动会调整大小。
有没有办法防止这种情况发生,或以其他方式隐藏菜单资源之间的丑陋过渡?
答案 0 :(得分:17)
我没有完全理解你的问题的菜单部分,但有一个简单的解决方案可以防止你的活动在ActionBar出现或消失时调整大小。
你可以告诉ActionBar以叠加模式绘制自己,这意味着它将浮动在活动之上,而不是实际上是活动布局的一部分。在主题中使用android:windowActionBarOverlay
,或在代码中使用Window.FEATURE_ACTION_BAR_OVERLAY
标记。
您可能希望将此功能与actionBarSize
常量结合使用,该常量指定布局中第一个视图的正确偏移量。这样,您的内容仍会显示在ActionBar下方,但由于ActionBar本身是一个叠加层,因此在隐藏/显示它时,活动将不会调整大小。
<SomeView
...
android:layout_marginTop="?android:attr/actionBarSize" />
更多详细信息,请参阅the documentation。