如何在cocos2d-x中创建包装的可滚动文本?
我在如何在cocos2d-x中创建包装的可滚动文本?,cocos2d-x,cocos2d-x-3.0,cocos2d-x-3.x,Cocos2d X,Cocos2d X 3.0,Cocos2d X 3.x,我在ui::Layout中有一个ui::Text,根据内容的不同,它会溢出。我已经从ui::Text的virtualRendererLabel上查看了setOverflow和Label::setWrap,但我没有找到一种方法使它可以滚动和包装 如何在确保文本正确包装的同时使其可滚动?诀窍是,不要使用ui::Scrollview,而是使用ui::ListView中只有一项的ui::Text。这允许您在更改ui::text的文本内容时滚动并动态调整容器大小 关键是a)将ui::Text的宽度设置为与
ui::Layout
中有一个ui::Text
,根据内容的不同,它会溢出。我已经从ui::Text
的virtualRenderer
Label
上查看了setOverflow
和Label::setWrap
,但我没有找到一种方法使它可以滚动和包装
如何在确保文本正确包装的同时使其可滚动?诀窍是,不要使用ui::Scrollview
,而是使用ui::ListView
中只有一项的ui::Text
。这允许您在更改ui::text
的文本内容时滚动并动态调整容器大小
关键是a)将ui::Text
的宽度设置为与其父级ui::ListView
相同的大小,高度设置为0,b)在文本内容更改时随时在ListView上调用my\u ListView->requestDoLayout()
,以便可滚动区域反映这一点
下面是一个示例,说明如何将大量文本滚动到较小的ui::Panel
:
ui::ListView*ListView=ListView::create();
my_scene->addChild(列表视图);
listview->setContentSize({300500})//随便大小都行
ui::Text*Text=ui::Text::create(“[多行内容]”,“fontName.ttf”,16);
text->setTextAreaSize({300,0})//使用相同的大小,但使用0高度。这将在后端自动设置溢出和换行
listview->addChild(文本);
listview->requestDoLayout()//这将触发调整listview的大小以适应
//字符串内容。你每次都需要这样做
//文本->设置字符串(新内容)。
诀窍是,不要使用ui::Scrollview
,而是使用ui::ListView
,其中只有一项,即ui::Text
。这允许您在更改ui::text
的文本内容时滚动并动态调整容器大小
关键是a)将ui::Text
的宽度设置为与其父级ui::ListView
相同的大小,高度设置为0,b)在文本内容更改时随时在ListView上调用my\u ListView->requestDoLayout()
,以便可滚动区域反映这一点
下面是一个示例,说明如何将大量文本滚动到较小的ui::Panel
:
ui::ListView*ListView=ListView::create();
my_scene->addChild(列表视图);
listview->setContentSize({300500})//随便大小都行
ui::Text*Text=ui::Text::create(“[多行内容]”,“fontName.ttf”,16);
text->setTextAreaSize({300,0})//使用相同的大小,但使用0高度。这将在后端自动设置溢出和换行
listview->addChild(文本);
listview->requestDoLayout()//这将触发调整listview的大小以适应
//字符串内容。你每次都需要这样做
//文本->设置字符串(新内容)。