我遇到了一个问题,即在我正在使用的应用中产生一种重要影响。 Senario就是这样的
在我的第一个活动中,我显示一个列表,一旦点击一个项目,我就会显示一个新活动,其中包含有关该项目的更多详细信息。
现在我想在详细页面上实现页面设置,以便用户可以向左或向右滑动并显示下一个或当前显示的项目,而无需返回列表中选择。
我有一个适用于物品的适配器,因此获取有关显示的项目以及“兄弟姐妹是什么”的信息并不重要
我一直在玩视图翻板,但据我所知,它需要在viewflipper的stumic中呈现的“视图”,我不敢渲染300件物品。关于使用3个视图和填充em onCreate的任何提示?
我用动画和动画调用了相同的活动,所以它会加上幻灯片并告诉你要显示哪些数据,但这样做的表现一定很差。
有什么想法吗?
如果你想看到我想要的动画/功能。在你朋友的详细页面上查看google latitude pageing。
// thx in advanced
答案 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
组件。