Android:向左或向右滑动视图

时间:2011-07-02 10:36:52

标签: android android-layout

我遇到了一个问题,即在我正在使用的应用中产生一种重要影响。 Senario就是这样的

在我的第一个活动中,我显示一个列表,一旦点击一个项目,我就会显示一个新活动,其中包含有关该项目的更多详细信息。

现在我想在详细页面上实现页面设置,以便用户可以向左或向右滑动并显示下一个或当前显示的项目,而无需返回列表中选择。

我有一个适用于物品的适配器,因此获取有关显示的项目以及“兄弟姐妹是什么”的信息并不重要

我一直在玩视图翻板,但据我所知,它需要在viewflipper的stumic中呈现的“视图”,我不敢渲染300件物品。关于使用3个视图和填充em onCreate的任何提示?

我用动画和动画调用了相同的活动,所以它会加上幻灯片并告诉你要显示哪些数据,但这样做的表现一定很差。

有什么想法吗?

如果你想看到我想要的动画/功能。在你朋友的详细页面上查看google latitude pageing。

// thx in advanced

2 个答案:

答案 0 :(得分:5)

我使用ViewFlipper实现了相同的行为,并根据需要加载了视图。

以下是我正在做的事情的快照。它与您想要的不完全相同,但您可以采用相同的方法。

/**
     * starts a new activity.
     * @param activityToStart the activity class.
     */
    public static void startActivity(Class<?> activityToStart) {
        String name = activityToStart.getName();
        while (history.contains(name)) {
            name += "1";
        }

        View view = activity.getLocalActivityManager().startActivity(name,
                new Intent(activity, activityToStart)).getDecorView();

        history.add(name);
        addView(view, name);
    }

     public void addView(View newView, String name) {
    // add its name to the history.
    history.add(name);
    // change the view.
    flipper.addView(newView);
    if(history.size() != 1) {
        flipper.setInAnimation(inFromUpAnimation());

        View oldView = getActivityAt(history.size() - 2);
        flipper.setOutAnimation(outFromBottomAnimation());
        flipper.showNext();
    }
}

private void back() {
   if(history.size() > 1) {
       View oldView = getActivityAt(history.size() - 1);
       flipper.setInAnimation(inFromBottomAnimation());
       setRemoveAnimation(oldView, outToUpAnimation(), history.remove(history.size() - 1));
       flipper.showPrevious();
   } else {
       finish();
   }
}

这里我有3个功能(要在你的情况下启动一个新的活动,你可以改变它以根据需要改变视图,第二个添加视图,第三个在用户回击时移除视图)。

希望这有帮助!

答案 1 :(得分:3)

另一种解决方案是使用Android compatibility package中的新ViewPager组件。