我有一个动画,我的图像在1分钟内从屏幕底部移动到屏幕顶部,并在活动开始时开始,如下所示
@Override
public void onWindowFocusChanged(boolean hasFocus){
image.getLocationOnScreen(diverSrcLoc); //bottom
View destLine = (View) findViewById(R.id.diverDest); //top
destLine.getLocationOnScreen(diverDestLoc);
destLoc[0] = srcLoc[0];
TranslateAnimation translate = new TranslateAnimation(0, destLoc[0]-srcLoc[0], 0, destLoc[1]-srcLoc[1]);
translate.setFillAfter(true);
translate.setDuration(Constants.MAX_TIME);
image.startAnimation(translate);
}
和清单:
<activity
android:name="com.xxx.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize|stateVisible" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
问题在于,当活动开始并且键盘弹出时,动画会一直向上移动到屏幕之外(键盘向上推动动画)。我认为adjustReize会做到这一点,但运气不好。当您关闭键盘时,动画将返回其正常路径。再次弹出键盘,动画的图像再次向上推。
有没有办法解决它?不应该用键盘改变目的地位置吗?
答案 0 :(得分:0)
你需要添加标志&#34; adjustPan&#34;而不是adjustResize
adjustResize调整布局大小,而adjustPan只允许键盘显示在其上