键盘可见时向上推动动画

时间:2014-05-03 16:40:51

标签: android android-animation

我有一个动画,我的图像在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会做到这一点,但运气不好。当您关闭键盘时,动画将返回其正常路径。再次弹出键盘,动画的图像再次向上推。

有没有办法解决它?不应该用键盘改变目的地位置吗?

1 个答案:

答案 0 :(得分:0)

你需要添加标志&#34; adjustPan&#34;而不是adjustResize

adjustResize调整布局大小,而adjustPan只允许键盘显示在其上