android scrollview嵌套listview 导致EditTextd出卡顿问题

android scrollview嵌套listview 导致EditTextd出卡顿问题,第1张

既然listView不可以滑动,那为什么不用LinearLayout来动态加载多个item进去呢?

或者你不用scrollview,最外层用listView,把上面的部分整个当成一个headView,这样可以滑动,也可以解决你的问题

对单个item,将内容截断在内存里暂存一个索引表,textview直接使用内存表里读取内容;

对大量item,可以分页刷新。(8-10个貌似不多啊,是不是有其它地方卡顿了。。)

由于QPlainTextEdit继承自QAbstractScrollArea,与普通的直接继承自QWidget的控件存在差异,QAbstractScrollArea中包含一个视窗,该视窗可以通过viewport函数来获取,刚好所有的绘制 *** 作都是在该视窗内部的,所以你应该在视窗内部进行绘制,而不是外围的widget中进行绘制(有点绕,还是看下面的代码)

假设你在头文件有如下定义:

//editor.h

class Editor : public QPlainTextEdit

{

Q_OBJECT

public:

Editor(QWidget* parent = 0):QPlainTextEdit(parent){}

virtual ~Editor(){}

//...

protected:

void paintEvent(QPaintEvent *e)

//..

}

源文件内容如下

void Editor::paintEvent(QPaintEvent *e)

{

//通过viewport函数获取视窗并进行绘制

//我只是简单的填充了一种颜色。

QPainter painter(viewport())

painter.fillRect(rect(),Qt::cyan)

//调用QPlainTextEdit默认的绘制函数,不调用的话

//后果会很严重的。

QPlainTextEdit::paintEvent(e)

}

虽然不明白你为嘛要重载paintEvent不过我想说,如果只是为了更改背景为目的,那还是用style sheet,方便!只要不要求速度,那么就用style sheet


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11693005.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存