Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在cocos2d-x中创建包装的可滚动文本?_Cocos2d X_Cocos2d X 3.0_Cocos2d X 3.x - Fatal编程技术网

如何在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的大小以适应
//字符串内容。你每次都需要这样做
//文本->设置字符串(新内容)。