中出ししui::Text
てui::Layout
、内容によってはオーバーフロー。を調べたり調べたりLabel::setOverflow
しましLabel::setWrap
たui::Text
がvirtualRenderer
Label
、スクロール可能にしてラップする方法がわかりません。
ui::Text
テキストを適切に折り返していることを確認しながらスクロール可能にするにはどうすればよいですか?
中出ししui::Text
てui::Layout
、内容によってはオーバーフロー。を調べたり調べたりLabel::setOverflow
しましLabel::setWrap
たui::Text
がvirtualRenderer
Label
、スクロール可能にしてラップする方法がわかりません。
ui::Text
テキストを適切に折り返していることを確認しながらスクロール可能にするにはどうすればよいですか?
秘訣は、 を使用する代わりに、内部に 1 つのアイテムのみを持つui::Scrollview
を使用することです。これにより、.ui::ListView
ui::Text
ui::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.