据我所知,DynamicLayout的目的是进行文本更改的布局,而StaticLayout处理的是不可变的文本。
然而,根据这两个类的文档,这两个类大多有相同的方法:
http://developer.android.com/reference/android/text/StaticLayout.html http://developer.android.com/reference/android/text/DynamicLayout.html
具体来说,我没有看到在setText()类上有一个DynamicLayout方法。
它们之间有什么不同,我如何使用DynamicLayout计算文本列表更改的布局?
发布于 2014-11-06 23:54:38
为了更新文本更改,DynamicLayout希望Spannable作为第一个参数。在这种情况下,它创建内部静态类DynamicLayout.ChangeWatcher的实例,并将其附加到Spannable。而Spannable则需要实现可编辑才能进行更新。
示例:
SpannableStringBuilder base = new SpannableStringBuilder("a");
DynamicLayout dynamicLayout = new DynamicLayout(base, base, paint, width, Alignment.ALIGN_NORMAL, 1.0, 0, true);
int firstHeight = dynamicLayout.getHeight();
base.append("\nA");
int secondHeight = dynamicLayout.getHeight();https://stackoverflow.com/questions/26673029
复制相似问题