我正在加载一个大文本(10万多行文本),textview显示它需要很长时间。我知道加载这么多文本很难,但是至少有一种方法可以在加载所有文本之前禁用textview控件,这样用户就可以滚动它,或者在它期间进行修改#39 ; s被加载到textview?
我更喜欢灰色(敏感=假)它并显示"正在加载"适合加载文本的时间。或者如果它可能,只需加载它立即加载它(例如只渲染部分文本)
我现在使用的代码非常简单,庞大的文本在StringBuilder中
第一个变种:
// everything is StringBuilder
simpleview.Buffer.Text = everything.ToString();
if (ScrollingEnabled)
{
simpleview.ScrollToIter(simpleview.Buffer.GetIterAtLine(ContentLines.Count), 0, true, 0, 0);
}
第二个(它在我看来更快)
simpleview.Buffer.Text = "";
simpleview.Buffer.InsertAtCursor(everything.ToString());
if (ScrollingEnabled)
{
simpleview.ScrollToIter(simpleview.Buffer.GetIterAtLine(ContentLines.Count), 0, true, 0, 0);
}
我不需要一次显示所有文字,但我希望用户可以滚动浏览所有文字,如果可能的话。另外我想要注意的是,对于10万行来说,这不仅速度慢,即使对于1000行,它实际上也非常慢,而且文本很短......