//抱歉检测出还有问题 暂时不建议使用 后期我会更新
ok解决了 我把MainActivity之前设置的启动模式是单栈模式 改为task栈内复用后就好了
但是华为手机依然存在这种问题 讲真华为真烦
<!-- 设置为栈内复用模式了 -->
<activity
android:name=".activity.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTask">
</activity>
我写了一个平移效果的 右边进左边出
项目的功能是点击登录时界面从右边滑出
activity跳转到activity用这个就可以 这个方法百度上到处都有
方法里放的两个文件就是动画的效果 一个管当前界面退出的动画 一个管下一个界面进入的动画 我会在后边贴出来
overridePendingTransition(R.anim.ani_right_get_into, R.anim.ani_left_sign_out);
方法需要在 startActivity、finish、onBackPressed 这三个下边运行才会有效果
普通跳转动画
Intent intentLoginA = new Intent(getContext(), LoginActivity.class);
startActivity(intentLoginA);
overridePendingTransition(R.anim.ani_right_get_into, R.anim.ani_left_sign_out);
点击返回图标时
case R.id.mLoginReturn://点击返回上一页
finish();
overridePendingTransition(R.anim.ani_left_into, R.anim.ani_right_out);
break;
点击返回按钮时
//界面回退时的动画 左进右出
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
overridePendingTransition(R.anim.ani_left_into, R.anim.ani_right_out);
return true;
}
return false;
}
但是 遇到fragment到activity就会有bug 切换时灵时不灵 就是有时候有效果 有时候没效果。。
当时我是这样写的
mActivity.overridePendingTransition(R.anim.ani_right_get_into, R.anim.ani_left_sign_out);
后来问了问大佬 给了我一个地址 大家可以看下这个 解决了我的问题
Android中getActivity()为null的解决办法
就是在onAttach方法中获取Activity的对象 这个不会为空 用取得的上下文调用动画代码就ok了
事实证明这个可以不用...
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mCtx = activity;//mCtx 是成员变量,上下文引用
}
@Override
public void onDetach() {
super.onDetach();
mCtx = null;
}
//未登录时跳转登陆界面 //动画"右进左出"
public void intentLoginYouJinZuoChu() {
Intent intentLoginA = new Intent(getContext(), LoginActivity.class);
startActivity(intentLoginA);
mCtx.overridePendingTransition(R.anim.ani_right_get_into, R.anim.ani_left_sign_out);
}
//未登录时跳转登陆界面 //动画"下进上出"
public void intentLoginShangChuXiaJin() {
Intent intentLoginB = new Intent(getContext(), AuthenticationActivity.class);
startActivity(intentLoginB);
mCtx.overridePendingTransition(R.anim.ani_botton_into, R.anim.ani_top_out);
}
下边贴上xml文件:
R.anim.ani_right_get_into
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="100%p"
android:fromYDelta="0"
android:toXDelta="0%p"
android:toYDelta="0" />
</set>
R.anim.ani_left_sign_out
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="-100%"
android:toYDelta="0"/>
</set>
回退时把动画反过来执行就可以了 结束 我要去加班搬砖了 15号还要交货呢 再见