从新线程启动活动时,Entry Transition动画无效。
new Thread(new Runnable() {
@Override
public void run() {
Intent listIntent = new Intent(HomeFragment.this.getActivity(),
ListActivity.class);
listIntent.putExtra(getString(R.string.type_id), data.get(i).getType_id());
listIntent.putExtra(getString(R.string.translation_title), data.get(i).getTranslate_type());
startActivity(listIntent);
getActivity().overridePendingTransition(R.anim.slide_up, R.anim.fade_in);
}
}).start();
但转换动画在ui线程中有效。为什么输入动画不能在新线程中工作?
答案 0 :(得分:3)
你只需使用它:
Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
Intent listIntent = new Intent(HomeFragment.this.getActivity(),
ListActivity.class);
listIntent.putExtra(getString(R.string.type_id), data.get(i).getType_id());
listIntent.putExtra(getString(R.string.translation_title), data.get(i).getTranslate_type());
startActivity(listIntent);
getActivity().overridePendingTransition(R.anim.slide_up, R.anim.fade_in);
}
}, 100);
快乐的编码!!
答案 1 :(得分:1)
您启动新活动的电话被视为UI部分,请仅在UI线程中执行,
因为启动新活动将占用整个屏幕,之前暂停旧动画可能是更好的解决方案,因为用户无法看到您的动画
答案 2 :(得分:0)
为什么要创建一个单独的线程来创建活动?
Intent intent = new Intent( getContext(), ListActivity.class);
startActivity(intent);