滚动ListView时,在ActionBar中推出/拉出

时间:2014-10-04 18:05:22

标签: android android-actionbar

最新的Google报亭应用程序具有ActionBarViewPager标签栏,当其下方列表向下滚动时,该标签栏会缓慢显示屏幕顶部。 重要的是,它会以滚动列表的相同速度缓解。当列表向上滚动时,ActionBar会恢复到屏幕上,再次以相同的速度滚动列表

我不是指ActionBar hide()show()方法,相反,我想知道如何隐藏和显示ActionBar的速率与它下面的列表相同滚动。

这是如何实现的?所有寻找文件解决方案的尝试都被证明是不成功的,所以任何帮助都会受到赞赏。

1 个答案:

答案 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

希望这有帮助!