2016-11-07 237 views
3

我正在用时间线创建一个Android应用程序。我用ListView来创建时间轴效果。当我点击ListViewItem时,我使用makeSceneTransitionAnimation来显示详细视图。一切工作正常,除了当我在详细视图中,并且我按下后退按钮时,makeSceneTransitionAnimations将页面动画化为原始单击行上方的行,并且屏幕随后闪烁。makeSceneTransitionAnimation后退按钮故障

这是我用它来创建动画的代码:

View timelineObject = view.findViewById(R.id.transition); 
    timelineObject.setTransitionName("selectClientTransition"); 

    Intent intent = new Intent(this, DetailActivity.class); 

    ActivityOptionsCompat options = ActivityOptionsCompat. 
      makeSceneTransitionAnimation(this, timelineObject , "selectClientTransition"); 
    this.startActivity(intent, options.toBundle()); 

我想在我详细的活动覆盖的后退按钮,但我不明白的方式来传递一个列表视图项的位置参数为makeSceneTransitionAnimation

+0

是否使用仿真器或移动用于运行应用程序 – Raj

回答

0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); 
     Explode explode = new Explode(); 
     getWindow().setExitTransition(explode); 
    } 
    super.onCreate(savedInstanceState);  


/*------Your code When the list item is click------*/ 
Intent intent = new Intent(context1, Main_testcollapse.class); 
       intent.putExtra("time", list.get(pos).getTime()); 
       if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { 
        ActivityOptions activityOptions = ActivityOptions.makeSceneTransitionAnimation((Activity) context1, view, "cardname"); 
        startActivity(intent, activityOptions.toBundle()); 
       } else { 
        startActivity(intent); 
       } 

另一个活动里面的的onCreate

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     getWindow().setAllowEnterTransitionOverlap(false); 
     Slide slide=new Slide(Gravity.END); 
     getWindow().setReturnTransition(slide); 
    }