在ViewFlipper中为不同视图使用不同的活动

时间:2010-07-16 01:17:14

标签: android

我正在开发一个音乐播放器,我有一个视图鳍状肢来控制所有艺术家视图,专辑视图等等。我现在正在做的是我在视图翻板的每个视图中都有列表视图。但是,我不想将所有代码放在一个活动中,而是为每个视图设置不同的活动。这有可能实现吗?

2 个答案:

答案 0 :(得分:2)

如果您的目标只是创建ViewFlipper提供的相同用户体验,那么您最好使用自API级别5以来可用的overridePendingTransition(int enterAnim, int exitAnim)

在导致活动发生变化的任何事件中,您都会调用overridePendingTransition。可以在Android SDK samples中找到一个示例,但我在下方提供了一个示例,以便更全面地回答您的问题。

首先,您必须定义动画。在anim下创建一个文件夹res。然后在中一​​个和一个 out 定义两个转换。

in_right

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="100%"
        android:toXDelta="0%"
        android:duration="600"/>
</set>

OUT_LEFT

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0%"
        android:toXDelta="-100%"
        android:duration="600"/>
</set>

然后,在启动其他活动的情况下,您可以在致电overridePendingTransition时使用这些动画。

// this code snippet does not show wiring event to button
void buttonClicked() {
    startActivity(new Intent(this, HistoryListActivity_.class));
    overridePendingTransition(R.anim.in_right, R.anim.out_left);
}

答案 1 :(得分:1)

  

然而,我不想把我所有的   一个活动内的代码,而是,   每个人都有不同的活动   图。

请不要这样做。它不仅不可能,而且另一个支持sorta(TabHost)的地方,它浪费了RAM和CPU。