RemoteViews中的TextView的setRotation(应用程序小部件)

时间:2015-01-19 18:30:46

标签: android rotation textview android-appwidget remoteview

我有一个小部件,其xml布局很简单:ImageViewTextView

我可以使用TextView对xml中android:rotation的旋转进行硬编码。

但是我希望能够以编程方式设置TextView的旋转。似乎View具有setRotation()方法,因此TextView将继承此方法,以便可以通过编程方式使用此方法旋转“普通”TextView。 / p>

但是当TextView被隐藏在RemoteViews中时,您必须间接调用这些方法,例如setTextViewText()setTextViewTextSize()

您似乎也可以调用常规setFloat(int viewId, String methodName, float value)来设置任何methodName的值,因此您也可以通过将"setTextSize"传递给setFloat()来设置文字大小

确定问题....

由于setTextViewRotation()中没有RemoteViews方法,我想我需要使用setFloat(viewId, "setRotation", value)间接调用它。

但是当我尝试时,我的小部件只显示“问题加载小部件”消息框。

它适用于例如setFloat(viewId, "setTextSize", value)更改了文字大小,因此我处于正确的轨道上,但它对我代码中同一位置的setRotation无效。

我猜这是因为setRotation是一个继承的方法(来自View),而不是TextView本身的方法,但它让我稍微陷入困境,如何轮换我的TextView

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您崩溃的原因是setRotation() @RemotableViewMethod中没有setFloat()注释,因此无法使用View进行设置。

我不知道您有任何方法可以在app小部件中动态更改android:rotation的旋转属性。一种解决方法是通过N个版本的布局文件支持N个旋转,每个版本都有一个硬编码的{{1}}值。