最新的Google书报摊应用程序具有ActionBarViewPager标签栏,当其下方的列表向下滚动时,该标签栏会慢慢缓和屏幕顶部。重要的是,它以与列表滚动相同的速度显示。当列表向上滚动时,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

希望这可以帮助!

07-24 09:49
查看更多