0

中出ししui::Textui::Layout、内容によってはオーバーフロー。を調べたり調べたりLabel::setOverflowしましLabel::setWrapui::TextvirtualRenderer Label、スクロール可能にしてラップする方法がわかりません。

ui::Textテキストを適切に折り返していることを確認しながらスクロール可能にするにはどうすればよいですか?

4

1 に答える 1

3

秘訣は、 を使用する代わりに、内部に 1 つのアイテムのみを持つui::Scrollviewを使用することです。これにより、.ui::ListViewui::Textui::Text

重要なのは、a) の幅をui::Text親と同じサイズに設定しui::ListView、高さを 0 に設定することと、b)my_listview->requestDoLayout()テキストの内容が変更されるたびにリストビューを呼び出して、スクロール可能な領域にそれが反映されるようにすることです。

以下は、大きなテキスト スクロールを小さな に実装する方法の例ですui::Panel

ui::ListView* listview = ListView::create();
my_scene->addChild(listview);
listview->setContentSize({300, 500}); //give it whatever size

ui::Text* text = ui::Text::create("[multiline content]", "fontName.ttf", 16);
text->setTextAreaSize({300, 0}); //use that same size, but use 0 height. This auto sets overflow and wrap in the backend
listview->addChild(text);
listview->requestDoLayout(); //this triggers resizing the listview to accommodate the
                             //string content. Needs to happen each time you
                             //text->setString(new_content) too.
于 2016-09-23T06:09:55.133 に答える