最新的Google报亭应用程序具有ActionBar
和ViewPager
标签栏,当其下方列表向下滚动时,该标签栏会缓慢显示屏幕顶部。 重要的是,它会以滚动列表的相同速度缓解。当列表向上滚动时,ActionBar
会恢复到屏幕上,再次以相同的速度滚动列表。
我不是指ActionBar
hide()
和show()
方法,相反,我想知道如何隐藏和显示ActionBar的速率与它下面的列表相同滚动。
这是如何实现的?所有寻找文件解决方案的尝试都被证明是不成功的,所以任何帮助都会受到赞赏。
答案 0 :(得分:2)
创建一个Fragment子类,用作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。
希望这有帮助!