【问题标题】:Android: How to switch between Activities like switching desktops in Home app?Android:如何在 Home 应用程序中切换桌面等活动之间切换?
【发布时间】:2010-07-10 10:08:53
【问题描述】:

我正在开发一个具有三个非常相似的活动的 Android 应用程序。我希望用户能够通过在屏幕上左右滑动来在它们之间切换。 这就是我到现在为止的管理方式:

我关注了这个post

然后我把onSwipe()方法改成这样:

@Override
 public void onSwipe(int direction) {
  Intent intent = new Intent();

  switch (direction) {

  case SimpleGestureFilter.SWIPE_RIGHT:
   intent.setClass(this, TodoTodaySheet.class);
   break;
  case SimpleGestureFilter.SWIPE_LEFT:
   intent.setClass(this, TrashSheet.class);
   break;

  }
  startActivity(intent);
 }

它有效,但我对此并不完全满意。此外,我不知道这是否是正确的方法。

我希望在切换桌面时具有类似于家庭应用程序的行为。因此,我想要一个更流畅的动画和从正确方向显示被调用活动的外观,例如。向右滑动时从屏幕左侧。

有什么提示吗?非常感谢。

【问题讨论】:

  • 此技巧不适用于在活动之间滑动(我自己也想这样做,但目前还没有办法这样做),但最好使用以下方法在视图之间切换:ViewFlow github.com/pakerfeldt/android-viewflow
  • @dgraziotin 您最后使用哪种方法来滑过不同的活动?

标签: android user-interface android-activity effects swipe


【解决方案1】:

主屏幕不会在活动之间滚动,它只会在不同的视图之间滚动,正如您在 its' source code 中看到的那样(第 298 行是更改屏幕的位置)。

如果您在活动之间切换,那么您将受用户配置和设备能力的支配,以了解在转换期间显示器会发生什么,因此您无能为力。

【讨论】:

  • 因此,实现这一点的唯一方法是按照 Faisal 的建议使用 ViewFlipper,或者像 News 应用一样使用 TabView 和一些手势在活动之间切换。
  • 使用 ViewFlipper 会限制您使用单个 Activity,这会影响操作系统管理您的应用程序的方式(例如,操作系统在清理资源时会选择全部或全部终止)。跨度>
【解决方案2】:

虽然最好将它们作为三个单独的 Activity,但我看到人们使用 ViewFlipper 在单个 Activity 中实现类似的效果。

这是一个包含更多信息的链接: http://www.inter-fuser.com/2009/07/android-transistions-slide-in-and-slide.html

【讨论】:

  • 谢谢。我想避免这种方法,因为这三个活动(即 listactivities)是相似的,但执行的任务相当繁重(从数据库等中检索内容)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多