什么是隐藏和显示ActionBar而又不产生动画干扰的干净方法

问题描述

我有一个活动,该活动的标签ViewPager,包含五个页面。这些选项卡显示在屏幕底部

这些页面中有四个应该显示自定义ActionBars,而没有一个

我知道何时选择页面,可以通过分别调用Actionbar.show()Actionbar.hide()来对其做出反应。但是,这会使我的活动底部出现故障一秒钟,因为布局似乎已重新绘制或其他内容。有一秒钟,我可以看到“我的实际背景颜色在其后的 白色背景”和我的所有基础Views“跳”,直到它们稳定下来并到达正确的位置。

this answer所述。但是,建议的解决方案是使用android:windowActionBarOverlay。这解决了小故障的问题,但是又创建了一个小故障,其中本应显示ActionBar页面的部分布局被切除,因为它现在位于“下方” ActionBar

按照this answer中的建议使用actionBar.setShowHideAnimationEnabled也无济于事。我的活动底部仍然出现故障。

我知道我可以使用first answer中的方法,并在应该显示操作栏的相应页面顶部添加页边距,以将应该显示内容移到较低位置。但是,这种方法对我来说似乎有点棘手,因为我执行此操作的方式将涉及从height获取ActionBar并在运行时将其添加到那些页面顶部适当的布局元素,因为我不知道ActionBar的确切高度,该高度因设备而异。

我需要一个干净的解决方案来在显示特定页面时隐藏和显示ActionBar,而使Activity不会出现故障。

PS:我想在没有第三方库的情况下解决此问题

编辑

使用androidx.appcompat.app.AppCompatActivitygetSupportActionBar()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)