android – AppWidget中的Ellipsized,多行文本?

看似简单的要求变成了一个非常痛苦的过程.我需要一个AppWidget来显示一些(通常是多行)文本 – 文本的大小会有所不同,并且可能比视图允许的长,所以在这种情况下需要椭圆化.该视图还将支持
Android v3.1中可调整大小的小部件,这再次要求小部件能够正确地动态支持不同大小的内容.很容易,你会想到吗?如果它是单行TextView,我认为它会……

所以最初我创建了一个TextView,将属性设置为在文本不适合时对其进行椭圆化,并且遇到the bug这意味着这不起作用 – 文本只包含两行.

然后我用多行抓住an open source custom view that ellipsizes correctly,它工作正常,但仅限于一项活动.我忘了AppWidget限制了视图在窗口小部件中可以进行的操作,所以这也失败了(“Class不允许被夸大”).我看不到使用此自定义视图的方法.

所以……我能想到的最好的解决方案是在窗口小部件中添加一系列单行TextView,并迭代子字符串,直到找到适合每一行的长度,然后再转到下一行.即手动渲染/测量/渲染文本.这种方法有许多缺点.

有没有更好的方法将多行椭圆化文本转换为AppWidget?

最佳答案 说实话,我认为你应该退后一步,重新思考你想做什么.能够调整窗口小部件的大小实际上是针对新类型的可调整大小的容器,其中可用的数据量明显可变,并且窗口小部件有明确定义的方式来表示它应如何在容器中显示.如果您不使用它们,那么构建一个可调整的布局对于提供有用信息(如果用户显着调整大小)将会非常棘手.

人们会采取的旧方法 – 让不同单元格大小的应用程序窗口小部件具有不同的布局 – 对于不使用新堆栈或列表UI的应用程序窗口小部件可能仍然有意义.

点赞