问题描述
我有一个活动,该活动的标签为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.AppCompatActivity
和getSupportActionBar()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)