几天前,我根据Action Bar
:Updating Action Bar Menu Item due to AsyncTask result without delay
AsyncTask
菜单图标时出现问题
现在我意识到这个问题与AsyncTask
或Action Bar
完全无关。如果我想更改TextView
或任何其他View
。
经过一段时间的反复试验后,我意识到问题是由我在Activity
中使用的overridePendingTransition引起的,后者调用了第二个Activity
(我要更改图标的位置):
第一个Activity
(在onItemClick方法中):
@Override
public void onItemClick(View view, int position) {
...
Intent intent = new Intent(getActivity(), SecondActivity.class);
...
startActivityForResult(intent, anyValue);
getActivity().overridePendingTransition(R.anim.slide_in_right, R.anim.no_animation);
}
动画看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0"
android:duration="@android:integer/config_shortAnimTime"/>
</set>
这就是第二个Activity的AsyncTask(onPostExecute)的样子:
@Override
public void onPostExecute(String result) {
super.onPostExecute(result);
if (mMenu != null) {
if (result.equals("no favorite")) {
...
mMenu.findItem(R.id.action_favorite).setVisible(false);
mMenu.findItem(R.id.action_no_favorite).setVisible(true);
} else {
...
mMenu.findItem(R.id.action_favorite).setVisible(true);
mMenu.findItem(R.id.action_no_favorite).setVisible(false);
}
}
如上所述,您可以使用一个TextView并根据结果设置文本,而不是在两个菜单图标之间切换 - 问题仍然存在。
你知道如何在我的第二个Activity
没有这种奇怪的延迟的情况下改变动画吗?
答案 0 :(得分:0)
检查 integer.xml 文件 根据需要缩小 config_shortAnimTime 的值。 它以毫秒为单位。 喜欢1000(1秒)。