我有一个小部件,其xml布局很简单:ImageView
和TextView
。
我可以使用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
。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
您崩溃的原因是setRotation()
@RemotableViewMethod
中没有setFloat()
注释,因此无法使用View
进行设置。
我不知道您有任何方法可以在app小部件中动态更改android:rotation
的旋转属性。一种解决方法是通过N个版本的布局文件支持N个旋转,每个版本都有一个硬编码的{{1}}值。