当用户在屏幕上滑动手指时,如何使我的页面滑动?

Posted

技术标签:

【中文标题】当用户在屏幕上滑动手指时,如何使我的页面滑动?【英文标题】:How can I make my page slide as the user slides finger on the screen? 【发布时间】:2011-02-11 11:19:43 【问题描述】:

任何示例代码?

我只需要与我的 android g-phone 主屏幕上相同的感觉。屏幕随着手指的移动而移动(也包括弹性效果)。

【问题讨论】:

你能做动画吗?我正在寻找这样的东西。我知道它可能与花哨的计算、感知手势等有关。只是想知道是否有任何简单的方法,比如使用 Horizo​​ntalScrollBar 并向其添加视图,然后设置一些参数并完成! @Maxood 你能做到吗..... 【参考方案1】:

在 Warriorspoint 上查看此 tutorial 和 its follow up。他们解释了如何使用 ViewFlipper 平滑地动画从一个屏幕到另一个屏幕的过渡,然后在第二部分中如何使用触摸控制来做到这一点。请注意,这些是全屏转换,不会在现有页面上平移。对于平移,例如对于不适合屏幕的超大图像,请查看Android BigImage。根据您尝试执行的操作,这些操作可能有点过头了,但并不是 100% 清楚您想要实现的目标。

【讨论】:

这两种方法无法识别,因为可能没有提供动画。 vf.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out)); vf.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));此外,当我评论这两行并运行代码时......我只是得到切换效果而不是滑动效果。请解释 您是否按照步骤 4 并从 ApiDemos 导入动画?如果你注释掉这两行,你就会得到切换效果,因为这两行告诉它使用滑动效果...... 很好。我这样做并获得了滑动效果,但无法用手指按住页面,因为可以在主触摸屏上做到这一点。我如何在用手指拖动/滑动时按住页面?因为当页面进行到一半时,可以用手指按住它。谢谢 这可能有点复杂。您可以尝试结合这两个教程的技术:使用 BigImage 技术允许用户在屏幕上滚动,但如果一旦他们移过某个点(即,将其移出屏幕 70%),则假设这是页面更改并使用 ViewFlipper。我不确定这是否可行……您必须进行试验或等待另一个答案! 我如何计算一个屏幕/页面已经移过了某个点(即移出了屏幕 70%)?【参考方案2】:

使用 SwipeView 类

http://jasonfry.co.uk/?id=23

https://github.com/fry15/uk.co.jasonfry.android.tools

【讨论】:

【参考方案3】:

ViewPager。事后,这似乎更完整的是addressed:

无论您是刚开始进行 Android 应用开发还是 手艺的老手,可能不久之后你就会需要 实现水平滚动的视图集。许多现有的 Android 应用程序已经使用这种 UI 模式,例如新的 Android 市场、谷歌文档和谷歌+。 ViewPager 将 实施。

【讨论】:

【参考方案4】:

主屏幕由两层组成:

显示图像的背景(或工作区);该层滚动并以不同的滚动值绘制壁纸。工作区的行为或多或少类似于简化的水平布局

显示图标的屏幕(或 CellLayouts);该层由 3 个并排的 CellLayout 组成。 CellLayout 是一种自定义的类似网格的布局。

使用 VelocityTracker、Scroller 和常规 View.scroll 方法实现投掷。

【讨论】:

【参考方案5】:

使用图库视图

【讨论】:

您确定画廊视图可以使用吗?我可以用手指将页面按住一半吗?【参考方案6】:

您将需要手势检测器 - 考虑的类/接口是:

 1. android.view.GestureDetector
 2. android.view.GestureDetector.SimpleOnGestureListener

感兴趣的方法是onFling

现在,根据各个方向的 X、Y 和速度,您可以在相应位置“绘制视图”/“在活动或视图组的情况下重新定位嵌套视图”。

可以在任何游戏示例中找到如何重绘的示例,例如 Android 中的 LunarLander http://developer.android.com/resources/samples/LunarLander/src/com/example/android/lunarlander/LunarView.html

【讨论】:

【参考方案7】:

我为我的应用程序做了这个,只是想我会分享我的解决方案。

Android Homescreen

【讨论】:

以上是关于当用户在屏幕上滑动手指时,如何使我的页面滑动?的主要内容,如果未能解决你的问题,请参考以下文章

右滑返回功能 几种实现方式总结

touch移动触屏滑动事件

HTML在移动端页面设计是touch事件注意事项

当用户滑动并点击手指(使用触摸手势)时如何隐藏所有 CollectionViewCell?

Unity C# IOS 滑动检测

移动端实现下拉刷新