Добавяне на Libgdx Scrollbar към TextArea

Така че търсих наоколо и за живота си не мога да разбера как правилно да направя това. Просто имам малка текстова област и искам да мога да превъртам през нея. Казаха ми, че е толкова лесно, колкото добавянето на TextArea към ScrollPane, но изглежда, че е по-сложно от това. Ето същността на моя код:

Skin defaultSkin = newSkin(DEFAULT_SKIN_FILEPATH +"uiskin.atlas", DEFAULT_SKIN_FILEPATH
+"uiskin.json");
TextArea textArea = new TextArea(levelLoader.getCodeSnippet(), defaultSkin);
ScrollPane pane = new ScrollPane(textArea, defaultSkin);
pane.setForceScroll(false, true);
pane.setFlickScroll(false);
pane.setOverscroll(false, true);
pane.setBounds(0f, 20f, game.getWindowWidth(), 300f);
gui.addActor(pane);
Gdx.input.setInputProcessor(gui);
setIsCreated(true);

levelLoader.getCodeSnippet() връща низ, съдържащ многоредов текст от .txt. TextArea се появява в прозореца на играта и многоредовият текст също се появява. Мога обаче да превъртам текста само с клавишите със стрелки. Принудих лентата за превъртане да се покаже, но тя заема цялата дясна страна на прозореца по този начин: http://s27.postimg.org/vqws36k77/pic.png Няма да превърта и смята, че няма няколко реда за превъртане, въпреки че са очевидни чрез превъртане с клавишите със стрелки. Също така се опитах да направя textArea по-голям от scrollPane, но може да съм го направил неправилно. Какво правя грешно тук?

Актуализация: Опитах както да поставя ScrollPane вътре в таблица, така и да задам размера на клетката на таблицата. Всякакви други предложения ще бъдат оценени.


person Nick Moser    schedule 10.09.2014    source източник


Отговори (1)


Това не е най-доброто решение. Предполагам, че това е грешка в оформлението на актуализацията на LIBGDX. Това е заобиколно решение, което работи за мен:

Задайте преф. редове ръчно и актуализиране на оформлението на превъртане, когато броят на редовете се промени.

textArea.setPrefRows(numberOfScrollLines); //numberOfScrollLines = text.split("\n").length pane.layout();

person MatejC    schedule 28.10.2014