我刚刚重新配置了一个以前工作的项目以使用早期版本的 android (2.2) ......只是发现它不会编译如下行:
mybutton.setX(myfloatvalue);
抱怨“ The method setX(float) is undefined for the type Button
”..所以我的问题是,我能做些什么呢?有没有类似的?
我刚刚重新配置了一个以前工作的项目以使用早期版本的 android (2.2) ......只是发现它不会编译如下行:
mybutton.setX(myfloatvalue);
抱怨“ The method setX(float) is undefined for the type Button
”..所以我的问题是,我能做些什么呢?有没有类似的?
如果您不想使用TranslateAnimation
. 使用九个旧 Android 库进行向后兼容:
ViewHelper.setX(button, xValue);
之后视图不可点击,TranslateAnimation
因为只有按钮的“精灵”被移动,而不是视图的边界和布局参数,即可点击区域。如果您单击旧位置,它会呼叫侦听器,很奇怪吧?
您可能想使用ObjectAnimator
九个旧机器人将整个视图结构移动到您想要的位置,并且仍然可以单击视图。
或者,如果您不想使用外部库。将视图的左边距分配给所需的 x inonAnimationEnd()
并让您的视图再次可点击。
您应该调整按钮的布局参数,并确保按钮处于相对布局中。对于 setX,将布局参数右边距设置为 myFloatValue。这是一个简单的例子:
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(left, top, right, bottom);
imageView.setLayoutParams(lp);
setX在 api 11及更高版本中可用。
要解决这个问题,请使用持续时间为 0 的 TranslateAnimation 和可以产生效果的参数。根据setX 的文档,它本质上是一回事。