为什么进入动画在新线程中不起作用?
Why entering animation is not working in new thread?
从新线程启动 activity 时,进入过渡动画不起作用。
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 线程中有效。为什么进入动画在新线程中不起作用?
你只需使用这个:
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);
编码愉快!!
为什么要创建一个单独的线程来创建 activity?
Intent intent = new Intent( getContext(), ListActivity.class);
startActivity(intent);
您关于启动新 activity 的呼吁被视为 UI 部分,请仅在 UI 线程中进行,
因为启动新的 activity 会占用你的整个屏幕,之前暂停旧动画可能是更好的解决方案,因为用户无论如何都看不到你的动画
从新线程启动 activity 时,进入过渡动画不起作用。
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 线程中有效。为什么进入动画在新线程中不起作用?
你只需使用这个:
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);
编码愉快!!
为什么要创建一个单独的线程来创建 activity?
Intent intent = new Intent( getContext(), ListActivity.class);
startActivity(intent);
您关于启动新 activity 的呼吁被视为 UI 部分,请仅在 UI 线程中进行,
因为启动新的 activity 会占用你的整个屏幕,之前暂停旧动画可能是更好的解决方案,因为用户无论如何都看不到你的动画