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);
这样如论在什么地方跳转到该页面 问题都解决了。