看起来是一个简单的要求是一个相当痛苦的过程。我需要一个AppWidget来显示一些(通常是多行)文本 - 文本的大小会有所不同,并且可能比视图允许的时间更长,因此需要在这种情况下进行椭圆化。该视图还将支持Android v3.1中的可调整大小的小部件,该小部件再次要求小部件能够正确动态支持不同大小的内容。很简单,你会想?如果这是一个单行的TextView,我认为这将是...AppWidget中的椭圆化多行文本?
因此,最初我创建了一个单独的TextView,设置属性来椭圆化它,当文本不适合,并遇到the bug这意味着这不起作用 - 文字只包含两行。
然后我用多行抓住an open source custom view that ellipsizes correctly,它工作正常,但只在一个活动。我忘记了AppWidget限制了视图可以进入一个小部件,所以这也失败了(“Class不允许被夸大”)。我看不到使用此自定义视图的方法。
所以...我能想到的最好的解决方案是向窗口小部件添加一系列单行TextView,并遍历子串,直到找到适合每一行的长度,然后再转到下一个。即手动呈现/测量/呈现文本。这种方法有许多缺点。
是否有更好的方法将多行椭圆化文本转换为AppWidget?
对于Honeycomb而言,您建议的方法很好,但应用程序可以在其他设备上运行。我认为很明显,这里存在一个错误 - 它在某些场景中省略,但不在其他场景中。我最终可能会使用透明度将最后一行淡入到背景中 - 这很丑陋,但是鉴于平台限制,这是一个明智的解决方案。 – 2011-06-23 08:10:23
我不确定你的意思。我建议的方法是不要使用Android 3.1中引入的可调整大小的小部件功能。 – hackbod 2011-06-23 13:31:46
用户没有调整大小 - 小部件显示大小不同的文本。小部件是固定大小的,内容各不相同,所以必须有某种方式来增加弹性来处理它,而不是仅仅把一个字减半。这是一个非常遗憾的框架实现不能按预期工作。 – 2011-06-24 12:28:52