Android EditText替代方案

Zam*_*ezi 18 performance android textview android-edittext

目前,在处理大量文本行(10000+)时,Android的EditText非常慢.看起来这种减速部分是由于EditText支持跨度,主要是因为EditText正在计算每条线的宽度,这是非常昂贵的.是否有更快的EditText替代品,或者一种优化它以使其可用的方法?

编辑:方法跟踪如下:

android.text.StaticLayout.generate: 99.1% CPU time inclusive, 8.8% exclusive (1 call)
    android.text.Layout.getParagraphSpans: 28% inclusive, 1.1% exclusive (4686 calls)
    android.text.MeasuredText.setPara: 20.6% inclusive, 1.6% exclusive (2343 calls)
    android.text.MeasuredText.addStyleRun: 18.6% inclusive, 1.1& exclusive (2343 calls)
    android.text.SpannableStringBuilder.getSpans: 15% inclusive (of parent calls), 56.7% inclusive (of all calls, 47.3% of which are from android.text.Layout.getParagraphSpans, 26% are from android.text.MeasuredText.setPara, 26% are from android.text.StaticLayout.generate)
Run Code Online (Sandbox Code Playgroud)

Ily*_*man 6

你可以做的最好的事情是使用RecyclerViewwith EditText作为它的项目,所以你得到一个新EditText的每一行.

新线将是您必须实施的唯一事项.


And*_*tor 2

尽管本文仅讨论优化文本不更改的静态 TextView,但它可能会让您走上制作性能更高的 EditText 的正确道路。