user interface - Libgdx, stage is creating duplicate widgets when run on android -


i trying display textfield on screen. works when desktop version run when run android version textfield duplicated , background messed up.

screenshots

code of screen class:

public class setupscreen implements screen {     private stage stage;     private table table;      private textfield paymentfield;      @override     public void show()     {         stage = new stage();         gdx.input.setinputprocessor(stage);         table = new table();         table.setfillparent(true);         stage.addactor(table);          pixmap bgpixmap = new pixmap(1, 1, format.rgba8888);         bgpixmap.setcolor(color.gray);         bgpixmap.fill();         texture bgtexture = new texture(bgpixmap);          pixmap cursorpixmap = new pixmap(1, 1, format.rgba8888);         cursorpixmap.setcolor(color.white);         cursorpixmap.fill();         texture cursortexture = new texture(cursorpixmap);          pixmap selpixmap = new pixmap(1, 1, format.rgba8888);         selpixmap.setcolor(color.blue);         selpixmap.fill();         texture seltexture = new texture(selpixmap);          textfieldstyle textfieldstyle = new textfieldstyle();         textfieldstyle.background = new spritedrawable(new sprite(bgtexture));         textfieldstyle.cursor = new spritedrawable(new sprite(cursortexture));         textfieldstyle.selection = new spritedrawable(new sprite(seltexture));         textfieldstyle.font = new bitmapfont();         textfieldstyle.fontcolor = color.white;          paymentfield = new textfield("", textfieldstyle);         paymentfield.setmessagetext("pay rate");          table.add(paymentfield);     }      @override     public void render(float delta)     {         stage.act(delta);         stage.draw();     }      @override     public void resize(int width, int height)     {         stage.getviewport().update(width, height);     }      @override     public void pause()     {     }      @override     public void resume()     {     }      @override     public void hide()     {     }      @override     public void dispose()     {         stage.dispose();     }  } 

your screen messed because not clear screen @ beginning of each frame.

@override public void render(float delta) {     gdx.gl.glclearcolor(0.0f, 0.0f, 0.0f, 0.0f);     gdx.gl.glclear(gl20.gl_color_buffer_bit | gl20.gl_depth_buffer_bit);     stage.act(delta);     stage.draw(); } 

another thing note ui should center camera. otherwise bottom-left corner of ui in middle of screen.

you last parameter of viewport.update() method.

@override public void resize(int width, int height) {     stage.getviewport().update(width, height, true); } 

Comments

Popular posts from this blog

OpenCV OpenCL: Convert Mat to Bitmap in JNI Layer for Android -

android - org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope -

python - How to remove the Xframe Options header in django? -