android - 在运行时设置 TextView 在 RemoteView 中的位置

标签 android android-appwidget

亲爱的,我正在尝试设置 TextView 在 appwidget 中的位置。

基本上,直接访问 TextView 的属性是可行的:

myRemoteView.setTextColor(R.id.myTextView, Color.WHITE);   //works

此外,我还可以间接访问 TextView 属性:

myRemoteView.setInt(R.id.myTextView, "setTextColor", Color.BLUE); // works

设置浮点值也有效:

myRemoteView.setFloat(R.id.myTextView, "setTextSize", 25); // works

现在我尝试将 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

我尝试了 FrameLayout 和 RelativeLayout,还有 AbsoluteLayout(折旧)。什么都不管用。但必须有办法做到这一点。你能帮忙吗?

最佳答案

回答时,RemoteViews API 不允许您设置翻译或位置

但是,您可以通过为 TextView 的父级设置填充来实现所需的效果
RemoteViews#setViewPadding(int, int, int, int, int, int)

或者,从 API 31 开始,您还可以为 TextView 设置边距
RemoteViews#setViewLayoutMargin(int, int, float, int)

关于android - 在运行时设置 TextView 在 RemoteView 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6153484/

相关文章:

android - 使用 onSearchRequested 传递 Bundle 时出现问题

android-layout - Jetpack Glance 小部件如何在没有 XML 的情况下工作?它如何转换为 RemoteViews?

App Widget中的Android循环Imageview

Android:以编程方式启用/禁用应用程序小部件

Android appwidget 在 android v2.1 上崩溃进程 com.android.settings,需要解决

android - Android ListView 如何刷新?

android - 无法使用导航组件清除所有 fragment 的回栈

java - 无法执行 dex : Multiple dex files define

android - 无法在 PreferenceCategory 中创建首选项

android - Widget 中的 ListView + GridView