似乎是一个简单的要求变得非常痛苦。我需要一个AppWidget来显示一些(通常是多行)文本 - 文本的大小会有所不同,并且可能比视图允许的长,所以在这种情况下需要椭圆化。该视图还将支持Android v3.1中可调整大小的小部件,这再次要求小部件能够正确地动态支持不同大小的内容。很容易,你会想到吗?如果它是单行TextView,我认为它会......
所以最初我创建了一个TextView,将属性设置为在文本不适合时对其进行椭圆化,并且遇到the bug这意味着这不起作用 - 文本只包含两行。< / p>
然后我用多行抓住an open source custom view that ellipsizes correctly并且它工作正常,但只在一个活动中。我忘了AppWidget限制了视图在窗口小部件中可以进行的操作,所以这也失败了(“Class不允许被夸大”)。我认为无法使用此自定义视图。
所以......我能想到的最好的解决方案是在窗口小部件中添加一系列单行TextView,并迭代子字符串,直到找到适合每一行的长度,然后再转到下一行。即手动渲染/测量/渲染文本。这种方法有许多缺点。
有没有更好的方法将多行椭圆化文本转换为AppWidget?
答案 0 :(得分:2)
说实话,我认为你应该退后一步,重新思考你想做什么。能够调整窗口小部件的大小实际上是针对新类型的可调整大小的容器,其中可用的数据量明显可变,并且窗口小部件有明确定义的方式来表示它应如何在容器中显示。如果您没有使用它们,那么构建一个可以调整的布局,如果用户显着调整大小,就会非常棘手。
人们会采取的旧方法 - 让应用程序窗口小部件以不同的单元格大小提供,每个窗口小部件具有不同的布局 - 对于不使用新堆栈或列表UI的应用程序窗口小部件可能仍然有意义。
答案 1 :(得分:0)
我一直在研究这个问题,我的解决方案是使小部件固定大小,并在垂直LinearLayout中使用10个TextView。没有实际的ListView,似乎没有任何其他方法可以做到这一点。
我想现在已经足够好了。