活动转换动画无法从选项卡活动到任何其他活动

发布于 2024-12-07 16:03:35 字数 431 浏览 0 评论 0原文

我正在尝试使用 OverridePendingTransition 来使用活动转换动画 当我从应用程序中的一个活动移动到另一个活动时,相同的代码可以工作 但是当我在从选项卡一部分的活动转换时使用相同的方法时 任何其他活动。动画不起作用,标准动画发生

        Intent intent = new Intent(xxx.this,
                yyy.class);

        startActivity(intent);
        overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);

在这里 xxx 是选项卡活动类之一的类,yyy 是

我卡住的 任何活动类 任何帮助将不胜感激

谢谢

干杯 希曼舒

I am trying to use activity transition animaition using OverridePendingTransition
The same code works while I move from 1 activity to another everywhere in my App
But when I use the same while transitioning from an activity which is a part of tab
to any other activity. The animation does not work and the standard animation takes place

        Intent intent = new Intent(xxx.this,
                yyy.class);

        startActivity(intent);
        overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);

here xxx is the class which is one of the tabs activity class and yyy is any activity class

I am stuck
Any help would be appreciated

Thanks

Cheers
Himanshu

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

攒一口袋星星 2024-12-14 16:03:35

我向谷歌问题报告了同样的问题,提供的解决方法是(虽然我还没有尝试过):-我找到了解决这个问题的方法,它并不完美,但它有效。
我添加了 overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);
在 TabActivity 上的 onPause 之前。

public void onPause() {
    overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);
    super.onPause()
}

I reported the same to google issues and the workaround provided was(I have not tried it though) :- I have found a way to work arround this, it is not perfect but it works.
I add the overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);
before the onPause on the TabActivity.

public void onPause() {
    overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);
    super.onPause()
}
骷髅 2024-12-14 16:03:35

让它发挥作用的更好方法:

getTabHost().setOnTabChangedListener(new OnTabChangeListener() {
         public void onTabChanged(String tabId)
         {
                View selectedView = getTabHost().getCurrentView();
                if (getTabHost().getCurrentTab() > lastTab)
                {
                    selectedView .setAnimation( R.anim.slide_left_in );
                }
                else
                {
                    selectedView .setAnimation( R.anim.slide_left_out );
                }

                lastTab = getTabHost().getCurrentTab();
         }
    });

Better way to make it work:

getTabHost().setOnTabChangedListener(new OnTabChangeListener() {
         public void onTabChanged(String tabId)
         {
                View selectedView = getTabHost().getCurrentView();
                if (getTabHost().getCurrentTab() > lastTab)
                {
                    selectedView .setAnimation( R.anim.slide_left_in );
                }
                else
                {
                    selectedView .setAnimation( R.anim.slide_left_out );
                }

                lastTab = getTabHost().getCurrentTab();
         }
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文