因此,我有一个动画视图,一旦动画完成,我想返回到屏幕中心。我使用以下代码将视图的中心移到屏幕的中心:
library(data.table)
library(magrittr)
setDT(df1)
melt(df1, 'group') %>%
.[, .(n = uniqueN(group)), value] %>%
.[n > 1, unique(value)]
# [1] 1 4
这在纵向模式下可以正常工作,但是一旦将手机旋转到横向,相关视图就会移至屏幕左下角的某个位置。知道为什么会这样吗?获取屏幕中心的数学方法应该相同还是不相同?
答案 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