键盘按下时按键向上滑动

时间:2015-03-04 16:56:45

标签: android animation button

我想添加一个按钮,以便在第一次按下时,键盘会向下滑动,然后再次按下时,键盘会向上滑动。编码如下:

代码:

    btn_hide.setOnClickListener(new View.OnClickListener()    
    {
        public void onClick(View view) 
        {
            press ++;
            Utilities.custom_toast(Check_Result.this, "press=", ""+press, "long");
            if (press %2 ==1)
            {
                move(keyboard_frame, 0, 0, 0, (Y_end-Y_begin)); 
            }
            else
            {
                move(keyboard_frame, 0, 0, (Y_end-Y_begin), 0); 
            }
        }
    });

private void move(View view, float X0, float X1, float Y0, float Y1)
{
    view.clearAnimation();
    TranslateAnimation translate =  new TranslateAnimation(Animation.ABSOLUTE, X0,          // from X0
                                                            Animation.ABSOLUTE, X1,         // to X1
                                                            Animation.ABSOLUTE, Y0,         // from Y0
                                                            Animation.ABSOLUTE, Y1);        // to Y1
    translate.setInterpolator(new DecelerateInterpolator());
    translate.setDuration(800);
    translate.setFillAfter(true);
    view.startAnimation(translate);
}

问题:

默认情况下显示键盘。按下btn_hide时,键盘可以正常向下滑动并停留在目标点。

但是,btn_hide似乎已禁用,无法再次按下(未显示自定义Toast),因此键盘无法滑动。

我想问为什么btn_hide被禁用,以及如何修改上述代码才能使其正常工作?

提前致谢!

1 个答案:

答案 0 :(得分:0)

TranslateAnimation下面的API中的

HoneyComb实际上并没有移动按钮,而只移动了它的图像。它的点击将在同一个地方。如果您支持API 11及更高版本,请改用ObjectAnimator。否则,在动画对象上注册一个监听器,在onAnimationEnd()中,将按钮移动到新位置。