gpt4 book ai didi

android - 使用 ViewPager 实现类似 iOS 应用关闭垂直滑动关闭的功能

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:33:00 26 4
gpt4 key购买 nike

我目前的 View 在 ViewPager 中水平排列,并且可以使用 PagerAdapter 循环浏览它们。目前,要执行我想在滑动时执行的操作,我必须在 View 页面上双击。我可以发布代码,但是提取必要的部分有点困难...

我想要的是能够在这些 View 上垂直滑动,让它们通过滑动和淡出垂直平移,然后在它们到达距设备边缘一定距离时执行操作。

要了解我的想法,在图库应用中,您可以捏合打开的照片以缩小并打开水平幻灯片 View 。从那里您可以向上(或向下)滑动照片/视频以将其删除。对于那些没有相同 Gallery 应用程序的人来说,这就像在 iOS 上关闭应用程序一样。

我尝试扫描 Gallery 应用程序的源代码,但没能找到正确的 Activity。

最佳答案

view.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent motion) {
float y = motion.getY();
/* NOTE: the following line might need to be in runOnUiThread() */
view.animate().alpha(1-Math.abs(y-height/2)/(height/2)).setDuration(50).start();
return true; //false if you want to pass this event on to other listeners
}
});

使用 1-Math.abs(y-height/2)/(height/2) 的解释是,当我在中心时,我希望 alpha 为 1,而 alpha 为在顶部或底部时为 0。您必须自己确定如何获取 height 值,或者是否要使用不同的方法来计算 alpha。如果您想获取触摸相对于屏幕的位置而不是相对于 View 的位置,请使用 getRawY()

此外,了解 MotionEvent 是按下、拖动还是释放事件可能对您很有用,请使用motion.getAction() == 分别带有 MotionEvent.ACTION_UP、MotionEvent.ACTION_MOVE 和 MotionEvent.ACTION_DOWN。

关于android - 使用 ViewPager 实现类似 iOS 应用关闭垂直滑动关闭的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33159127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com