我在这个案子上工作了好几天。我有一个文件,其中 20万行文本将显示在活动中。
我在ScrollView中使用TextView来显示文本。一切顺利,但TextView需要3-5 seconds
来绘制文本。在此绘图时间内,如果我想滚动视图,我收到ANR错误
是否有任何解决方案可以避免ANR警告?
答案 0 :(得分:1)
为了完成这项任务,我开发了一个名为LongTextView
的库(类):https://github.com/metalurgus/LongTextView
用法:的
<com.metalurgus.longtextview.LongTextView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:gravity="left|top"
app:maxLinesPerItem="2"
app:text="@string/long_text"
app:textColor="#ff0000"
app:textSize="5dp" />
工作原理:
它将整个文本拆分为部分,并使用回收将其显示为ListView
个项目,因此 - 由于巨大的TextView
答案 1 :(得分:0)
您需要在manifest.xml文件中将硬件加速设置为false,如此处所述 - https://stackoverflow.com/a/12118798/1649353
或尝试这样
View scroll = layout.findViewById(R.id.scrollView1);
scroll.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
答案 2 :(得分:0)
试试这个:
TextView txtDetails = (TextView) findViewById(R.id.txtDetails);
txtDetails.setText("Your Text");
txtDetails.setMovementMethod(new ScrollingMovementMethod());