【问题标题】:RemoteViews setLayoutParams?RemoteViews 设置布局参数?
【发布时间】:2010-07-25 20:17:00
【问题描述】:

我想远程将TextView 的高度设置为WRAP_CONTENT

由于没有remoteviews.setLayoutParams(viewId, param) 函数,我该怎么做?

我尝试了remoteviews.setInt.(viewId, "setHeight", -2),但这只是将TextView 的高度设置为零...

谢谢!

【问题讨论】:

    标签: android views textview


    【解决方案1】:

    创建RemoteViews 时,将资源ID 传递给将TextView 设置为高度设置为wrap_content 的构造函数。请记住,当您发送更新时,您实际上是在重绘应用小部件,因此您可以使用布局文件来影响您无法通过 RemoteViews 上的方法进行的更改。

    【讨论】:

    • @CommonsWare:wrap_content 工作......几乎。如果 textview 的内容不太大,但我想将高度限制为 25dp。即,等式将是高度
    • @PeteH:您可以尝试使用 25dp(或者,更好的是 25sp)限制将 TextView 包装在某些东西(例如,FrameLayout)中,然后使用 wrap_content on TextView 本身。我怀疑它是否能满足您的要求,但值得快速测试。否则,我没有什么好主意——您可以考虑为此提出一个单独的 SO 问题。
    • @CommonsWare:谢谢你的想法。我发现唯一可行的方法是计算字符数并将其用作粗略的指标,以在有太多无法容纳时减少 textSize。
    • @CommonsWare 你知道如何动态改变宽度/高度吗?我想让用户选择元素应该有多大(这意味着设置一个 int 而不是“wrap_content”)但是为每个可能的大小创建一个布局是没有意义的。
    • “我想让用户选择元素的大小”——如果您在元数据中指明您的应用小部件是可调整大小的,用户可以通过他们的主页调整应用小部件的大小屏幕(至少对于支持它的主屏幕实现)。然后,您只需要使用流畅的布局(例如,match_parent)来占用给您的任何空间。如果这不是您的意思,您可能希望提出一个单独的 Stack Overflow 问题,在其中提供有关您的场景的更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 2011-09-21
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多