我正在寻找一种方法来更改视图中视图的位置 运行时的主屏幕小部件/远程视图。 我之前也看过这个主题,但那里给出的答案对我没有帮助,甚至不起作用。
例如:
我正在尝试将 TextView 的 x 位置移动 5 个像素:
myRemoteView.setFloat(R.id.myTextView, "setTranslationX", 5); // does not work
myRemoteView.setFloat(R.id.myTextView, "setX", 5); // does not work
myRemoteView.setInt(R.id.myTextView, "setLeft", 5); // does not work
我在其他地方找不到可以帮助我的有用答案。
您可以尝试使用
RemoteViews
膨胀一种不同的布局,其中小部件位于您想要的位置。我不确定它是否有效,但值得一试。
从 API 31 开始,setTranslationX 可以在 RemoteView 上调用,因为它已被注释为 RemotableViewMethod。要么:
myRemoteView.setFloat(R.id.myTextView, "setTranslationX", 5f)
或者使用 RemoteViewsCompat 中的扩展方法:
myRemoteView.setViewTranslationXDimen(R.id.myTextView, 5f, TypedValue.COMPLEX_UNIT_PX)