我有一个主要使用两个活动的应用程序,我们将调用第一个ListActivity,因为它包含ListView,另一个我们将调用InfoActivity。在ListView上单击某个项目时,应使用滑动过渡使InfoActivity处于活动状态,我已按如下方式实现
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
//store the id of the item that was clicked
PlacesHelper.tappedId = position;
Intent i = new Intent(ListActivity.this, InfoActivity.class);
startActivity(i);
finish();
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);
}
当我点击某个项目并查看它时,过渡效果非常好。但是,使用后退按钮或向上按钮(因为ListActivity是InfoActivity的父级)会导致两个活动消失(不使用滑动过渡)并返回到LoadingActivity。
是什么导致这种情况发生?我实施过渡是否存在严重问题?
答案 0 :(得分:0)
ActionBar中的向上按钮和后退按钮仍然没有进行滑动过渡,但是通过覆盖backPressed()和onOptionsItemSelected()并使用overridePendingTransition()可以很容易地解决这个问题。
最终代码:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
//store the id of the item that was clicked
PlacesHelper.tappedId = position;
Intent i = new Intent(ListActivity.this, InfoActivity.class);
startActivity(i);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);
}
我希望这有助于某人!