我正在尝试在 Widget 中设置远程 TextView 的文本大小,如下所示:

RemoteViews rv = new RemoteViews(mContext.getPackageName(), layoutId);
rv.setFloat(R.id.subject, "setTextSize", 10f);

虽然我可以设置其他属性,如文本颜色或更改 View 的可见性,但在使用 setTextSize 时,膨胀失败并显示以下错误消息(无堆栈跟踪):
Error inflating RemoteViews at position: 1, using loading view instead
android.widget.RemoteViews$ActionException:
view: android.widget.TextView doesn't have method: setTextSize (float)

setTextSize(float) 具有 @RemotableViewMethod 注释,因此应该支持它,但甚至找不到该方法(“没有方法”和“不支持”错误之间存在差异)。

当方法明确存在时,为什么它不会找到方法?
在 API 16 中为 RemoteViews 引入 setTextViewTextSize() 方法可能表明我的方法有问题?
任何帮助将非常感激。

最佳答案

您应该在第三个参数中使用 int 类型。因此,删除使其成为显式浮点数的“f”。

rv.setFloat(R.id.subject, "setTextSize", 10);

10-08 19:07