我想通过允许用户向左或向右滑动页面而不是仅仅使用下一个/上一个按钮(类似于主屏幕)来为我的应用程序提供一个很好的触摸。
最好的方法是什么?我假设我必须覆盖其中一个Activity.on...
方法,并且我还必须将我的网页的主View
放在允许我左右移动页面的ViewGroup
中。 / p>
答案 0 :(得分:3)
ViewFlipper是你的朋友!
在这里你可以看到一个很好的ViewFlipper视频和一个非常好的教程:
http://www.inter-fuser.com/2009/07/android-transistions-slide-in-and-slide.html
答案 1 :(得分:3)
随着兼容性软件包r3的发布,解决方案现在变得更加容易了。您可以在此处下载:http://developer.android.com/sdk/compatibility-library.html
它包括
和碎片版本,如果你这样倾向。
寻呼机代码与API版本4(1.6)兼容,我只是在大约2小时内实现了一个动态生成的viewPager。我是新手,所以这绝对是首选路径。
此处有一个示例应用:http://geekyouup.blogspot.com/2011/07/viewpager-example-from-paug.html
答案 2 :(得分:0)
如果想要在两个活动之间切换,也许可以应用这个动画过渡:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
finish();
//transition using XML view animations
overridePendingTransition(R.anim.slideinfromright, R.anim.slideouttoleft);
答案 3 :(得分:0)
使用GestureDetector检测触摸事件是否为滚动。
如果第一次调用onScroll的第一个事件是ACTION_DOWN,那么你应该看看它是否是一个显性水平滚动。如果是,则启动滚动,您应该移动填充页面的视图的绝对位置。
对于非弃用的绝对定位,请参阅我的答案Android: Alternative to AbsoluteLayout (I really do need absolute positioning)
您需要注意是否返回true以消耗触摸事件。
GestureDetector没有停止滚动的回调。你必须在调用GestureDetector.onTouchEvent之前检查是否有ACTION_UP,如果有一个动作,你确实有一个未完成的滚动,那么你应该将绝对位置设置到目标位置并使用TranslateAnimation使它看起来不错从当前移动到目的地。
编辑:
如果子视图也想响应触摸事件,那么GestureDetector根本无法正常工作。我最终创建了FrameLayout的子类(最基本的布局之一,最接近非侵入式父视图)并覆盖dispatchTouchEvent。我刚刚接受了所有事件并自己进行了检测。答案 4 :(得分:0)
我们不能在这里使用Gallery视图?使用适配器,整个页面可以在库视图适配器getView()内膨胀,它将完美地管理左侧滚动。