最新的Google书报摊应用程序具有ActionBar
和ViewPager
标签栏,当其下方的列表向下滚动时,该标签栏会慢慢缓和屏幕顶部。重要的是,它以与列表滚动相同的速度显示。当列表向上滚动时,ActionBar
放回到屏幕上,再次以相同的速度滚动列表。
我不是在指ActionBar
hide()
和show()
方法,而是想知道如何以滚动下方列表的相同速率隐藏和显示ActionBar。
如何实现的?事实证明,所有找到书面解决方案的尝试都没有成功,因此,我们将不胜感激。
最佳答案
简短答案
创建一个片段子类作为ActionBar的替代品。滚动事件之后,使用OnScrollListener更新片段视图的translationY
。
长答案
在深入研究ActionBar源代码之后,似乎没有公共方法可以访问ActionBar容器视图。但是只要有意愿,there's a way。
您可以使用以下方法获取对操作栏视图的引用:
int resId = getResources().getIdentifier("action_bar_container", "id", "android");
View actionBarContainer = findViewById(resId);
免责声明:
action_bar_container
是私人ID,因此受到Google的追捧。使用风险自负。拥有操作栏的视图后,就可以为其设置动画效果。
如果您有兴趣,我会一起a semi-functional example。
希望这可以帮助!