StaticLayout和DynamicLayout有什么不同?

据我所知, DynamicLayout的目的是为了改变文本的布局,而StaticLayout处理不可变的文本。

然而,根据他们的文档,这两个类大多有相同的方法:

http://developer.android.com/reference/android/text/StaticLayout.html http://developer.android.com/reference/android/text/DynamicLayout.html

具体来说,我没有看到在DynamicLayout类的方法setText()

它们有什么区别,我怎样才能使用DynamicLayout来计算文本正在改变的布局?

Solutions Collecting From Web of "StaticLayout和DynamicLayout有什么不同?"

为了更新文本更新,DynamicLayout需要Spannable作为第一个参数。 在这种情况下,它将创build内部静态类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();