我想添加一个按钮,以便在第一次按下时,键盘会向下滑动,然后再次按下时,键盘会向上滑动。编码如下:
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
被禁用,以及如何修改上述代码才能使其正常工作?
提前致谢!
答案 0 :(得分:0)
TranslateAnimation
下面的API中的 HoneyComb
实际上并没有移动按钮,而只移动了它的图像。它的点击将在同一个地方。如果您支持API 11及更高版本,请改用ObjectAnimator。否则,在动画对象上注册一个监听器,在onAnimationEnd()
中,将按钮移动到新位置。