动画后视图不会回到中心

时间:2019-04-15 13:52:29

标签: android animation kotlin position android-animation

因此,我有一个动画视图,一旦动画完成,我想返回到屏幕中心。我使用以下代码将视图的中心移到屏幕的中心:

library(data.table)
library(magrittr)
setDT(df1)

melt(df1, 'group') %>% 
  .[, .(n = uniqueN(group)), value] %>% 
  .[n > 1, unique(value)]

# [1] 1 4

这在纵向模式下可以正常工作,但是一旦将手机旋转到横向,相关视图就会移至屏幕左下角的某个位置。知道为什么会这样吗?获取屏幕中心的数学方法应该相同还是不相同?

1 个答案:

答案 0 :(得分:1)

发生这种情况是因为当您转动手机时,将重新创建视图,因此您应该在活动中覆盖此方法:

@Override 
public void  onConfigurationChanged(Configuration myConfig) 

 { 
  super.onConfigurationChanged(myConfig); 
  int orient = getResources().getConfiguration().orientation;

  switch(orient) 
  {
   case Configuration.ORIENTATION_LANDSCAPE: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
     break; 
    case Configuration.ORIENTATION_PORTRAIT:        

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
   break; 
   default:
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); 
       }
  }

别忘了添加android:configChange:"orientation|screenSize" 到清单中的活动标签

修改

kotlin:check this tuto