方法setX(float)未定义Button类型

时间:2013-10-09 13:57:19

标签: android

我刚刚重新配置了一个以前工作的项目,以使用早期版本的android(2.2)......但却发现它不会编译如下行:

mybutton.setX(myfloatvalue);

抱怨“The method setX(float) is undefined for the type Button”..所以我的问题是,我该怎么办呢?有近乎相同的吗?

3 个答案:

答案 0 :(得分:4)

如果您不想使用TranslateAnimation。使用Nine Old Androids库进行反向比赛:

ViewHelper.setX(button, xValue);

TranslateAnimation后视图无法点击,因为只移动按钮的“精灵”,而不移动视图的边界和布局参数,即可点击区域。如果你点击旧位置它会调用听众,很奇怪吧?

您可能希望使用九个旧机器中的ObjectAnimator将整个视图结构移动到您想要的位置,并且视图仍然可以点击。

或者,如果您不想使用外部库。将视图的左边距指定为onAnimationEnd()中所需的x,然后再次点击您的视图。

答案 1 :(得分:2)

您应该调整按钮的布局参数,并确保按钮位于relativelayout中。对于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);

答案 2 :(得分:0)

setX available in api 11及以上。

要解决此问题,请使用持续时间为0的TranslateAnimation以及可以产生效果的参数。根据{{​​3}},它基本上是相同的。