overridePendingTransition无效

本文探讨了Android中Activity界面切换时overridePendingTransition方法可能失效的情况,包括系统版本限制、TabHost及内部类使用场景,并提供了有效的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 项目中 经常会遇到Activity界面切换问题 

 

可是有时overridePendingTransition 会无效

 

 

无效原因

<1> android系统版本2.0以下。

<2> TabHost中父Activity使用。

<3> Activity内部类中使用。

<4> Adapter中使用。

 

 

解决方法

<1> 版本问题忽略。

<2> TabHost中使用 getParent().overridePendingTransition(R.anim.XX,R.anim.XX);。

<4> Adapter的构造方法传入Activity对象 用Activity对象调用即可。

 

<4> 关于内部类使用无效问题 ,本人是在Android WebView 响应图片路径显示大图跳转页面时遇到的问题

代码如下:

public void openImage(String img) {
            
if(!BooleanUtils.isEmpty(img)){
        int position=0;
        String path[] =new String []{img};
        int num=list.size();
        if(num>0){
             path=list.toArray(new String[list.size()]);
                for(int i=0;i<num;i++){
                    String str=list.get(i);
                    if(img.equals(str)){
                        position=i;
                        break;
                    }
                }
        }

        Intent intent=new Intent();
        intent.putExtra("path", path);
        intent.putExtra("position",position);
        intent.setClass(context, ShowWebBigImagActivity.class);
        context.startActivity(intent);
    }
 }

跳转时有时有效有时无效

解决方法 

 

在要打开的activity中

onCreate方法中添加进入的效果

overridePendingTransition(R.anim.alphain, R.anim.alphaout);

注意位置 要在super之前

overridePendingTransition(R.anim.alphain, R.anim.alphaout);
super.onCreate(savedInstanceState);

在返回方法中比如onKeyDown方法中添加出去的效果 注意要在finish()之后

finish();
overridePendingTransition(R.anim.alphain, R.anim.alphaout);

这样如论在什么地方跳转到该页面 问题都解决了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值