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

2024-01-09

亲爱的大家,我正在尝试在应用程序小部件中设置 TextView 的位置。

基本上,直接访问 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) https://developer.android.com/reference/android/widget/RemoteViews#setViewPadding(int,%20int,%20int,%20int,%20int)

或者,从 API 31 开始,您还可以设置 TextView 的边距
RemoteViews#setViewLayoutMargin(int, int, float, int) https://developer.android.com/reference/android/widget/RemoteViews#setViewLayoutMargin(int,%20int,%20float,%20int)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行时设置 TextView 在 RemoteView 中的位置 的相关文章

随机推荐