我正在尝试实现一种方法,当用户向下滚动 ScrollView 时,让我的页脚向下滑动和标题向上滑动。
反之亦然,当用户向上滚动 scollview 时,我希望页脚从底部滑入,页眉从顶部滑入。
关于动画,我找到了这个很好的库https://github.com/daimajia/AndroidViewAnimations带有很多漂亮的动画。
与我正在寻找的最接近的示例是默认的 Android Twitter 应用程序,当用户向下滚动时间线时,它的页脚会消失,而当用户向上滚动时,它会重新出现。
通过标题,我不是在谈论 Android 工具栏(op AppBar 或其他)。这是一个定制的 UI 元素,我想在用户滚动时为其添加动画效果。
页脚也是如此:它是一个定制的 UI 元素。
在寻找解决方案时,我偶然发现了这个答案 https://stackoverflow.com/a/28712465/3535408但它不起作用。
事实上,将 Log.d
放在 if
和 else if
中表明,用手指简单触摸即可触发 MotionEvent。 ACTION_DOWN
和 MotionEvent.ACTION_UP
事件。当我向上/向下滑动手指使 ScrollView 向上/向下滚动时,这同样适用:当我停止触摸 ScrollView 时,这两个事件都会在最后触发。
有没有办法改进这个解决方案?因为到目前为止,随着两个MotionEvents
被触发,两个动画也被触发,所以结果是相当可怕的。
谢谢!
最佳答案
实现这一目标的简单方法如下:
- 将 ListView 、页眉和页脚放置在RelativeLayout中
- 将标题与父级顶部对齐
- 将页脚与父级底部对齐
- 向 ListView 添加相同高度的空页眉和页脚
- 捕获 ListView 上的滚动事件并相应地更改页脚和/或页眉的翻译
但是为了回答你的问题,我建议你应该尝试一下 GestureDetector。管理事件变得更加容易 - Detecting Gestures
关于java - 安卓 : hide/show footer/header as scrolling scrollview down/up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34037951/