当前位置: 首页 > 知识库问答 >
问题:

LibGDX Tablelayout菜单不显示

申屠喜
2023-03-14

我正在用LibGDX编写一个处理背景纹理的新程序,并且刚刚开始实现屏幕。但当我测试它时,它只显示一个给定分辨率的黑屏。在实现的游戏类中,我使用setScreen(screen)-方法调用screen。

下面是代码:

public class MenuScreen implements Screen{
Table table;
Stage stage;
TextButton button;
TextField textField;
Texture texture;
Pic2Box2d game;

public MenuScreen(Pic2Box2d gameH)
{
    this.game = gameH;
    stage = new Stage(0, 0, true);
    table = new Table();
}
public void create()
{
    final TextFieldStyle fieldStyle = new TextFieldStyle(new BitmapFont(), Color.WHITE, new BitmapFont(), Color.GRAY, null, null, null);
    textField = new TextField("path", fieldStyle);
    final TextButtonStyle buttonStyle = new TextButtonStyle();
    buttonStyle.font = new BitmapFont();
    buttonStyle.fontColor = Color.WHITE;
    buttonStyle.pressedOffsetY = 1f;
    buttonStyle.downFontColor = new Color(0.8f, 0.8f, 0.8f, 1f);
    button = new TextButton("Übernehmen", buttonStyle); 
    button.setClickListener(new ClickListener() {
        @Override
        public void click(Actor actor, float x, float y) {
            if(textField.getText() != "" && textField.getText() != "path")
            {
            texture = new Texture(textField.getText());
            game.setScreen(new Workscreen(texture));
            }
        }
    });
    table.row();
    table.add(textField);
    table.add(button);
    stage.addActor(table);
}
@Override
public void render(float delta) {
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
    Gdx.gl.glClearColor(0, 0, 0, 1);
    stage.act(Gdx.graphics.getDeltaTime());
    stage.draw();
}

}

共有2个答案

田曜瑞
2023-03-14

当screen成为调用的当前screen show方法时(而不是像您的情况那样创建),请尝试将您的创建方法更改为show

此外,你是init阶段错误,你应该发送它的宽度和高度,你发送了0,0尝试类似的东西

stage = new Stage(Gdx.graphics.getWidth(),Gdx.graphics.getHeight(),false);
苍元章
2023-03-14

@idaNakav是正确的使用show()和设置阶段维度。然而,这仍然会给你一个黑屏,因为你的桌子没有任何大小。尝试更改show()代码以包含table.setFillP的(true)。

它应该看起来像这样(基于您提供的示例的代码)。

@Override
public void show() {
    final TextFieldStyle fieldStyle = new TextFieldStyle(new BitmapFont(), Color.WHITE, null, null, null);
    textField = new TextField("path", fieldStyle);
    final TextButtonStyle buttonStyle = new TextButtonStyle();
    buttonStyle.font = new BitmapFont();
    buttonStyle.fontColor = Color.WHITE;
    buttonStyle.pressedOffsetY = 1f;
    buttonStyle.downFontColor = new Color(0.8f, 0.8f, 0.8f, 1f);
    button = new TextButton("Übernehmen", buttonStyle);
    button.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            if (textField.getText() != "" && textField.getText() != "path") {
                texture = new Texture(textField.getText());
                game.setScreen(new Workscreen(texture));
            }
        }
    });


    table.row();
    table.add(textField);
    table.add(button);

    // Make the table fill the stage.
    table.setFillParent(true);

    stage.addActor(table);
}
 类似资料:
  • 我的应用程序有问题。。。溢出菜单不可见!我可以点击手机的右上角,菜单项就会显示出来,但这三个点并没有显示出来。 这是我的xml: Java代码: 我在StackOverflow上尝试了其他解决方案,但它们似乎都不起作用。我试过在两部手机上运行这个应用程序,都是Android版本 更新:我尝试在应用程序中添加导航抽屉。再次,当我点击抽屉按钮应该在的一侧时,菜单会显示出来,但按钮不可见。。。 更新2:

  • 我试图通过从展示中获取代码来使primeface元素出现在我的页面上,菜单在一些修改后运行良好,但selectonemenu拒绝出现。 它在布局单元中没有显示任何内容。这是我的xhtml代码:

  • 我想在我的项目中包括底部导航菜单,但它不起作用。底部导航菜单中没有显示菜单图标。我使用的是Android Studio北极狐。我做了所有正确的步骤,但仍然面临问题。这是我的代码,请帮我解决这个问题。谢谢。 主要活动Xml res\菜单\底部导航菜单 build.gradle 主题。xml

  • 这个是一级菜单 没有二级菜单 但是会显示二级菜单的展开收起的图标 如何让这个不显示? 主要代码: 数据:

  • 问题内容: 我是iOS的新手。我正在尝试显示一个弹出菜单,但是我却无法显示菜单。请帮忙。这是我的代码: 请帮助我显示弹出菜单。 先感谢您。 问题答案:

  • ap.showActionSheet(OPTION, CALLBACK) 显示操作菜单。 OPTION 参数说明 名称 类型 必填 描述 title String 否 菜单标题 items String Array 是 菜单按钮的文字数组 cancelButtonText String 否 取消按钮文案,默认为「取消」 CALLBACK 参数说明 点击菜单按钮时调用 名称 类型 描述 index