【问题标题】:libgdx scrollpane doesn't displaylibgdx 滚动窗格不显示
【发布时间】:2013-03-02 18:00:02
【问题描述】:

我在让 libgdxs 滚动窗格控件正常工作时遇到问题。下面的代码显示了一个简单布局的控件设置,其中包含一个标签、一个滚动窗格内的项目列表和一个按钮。问题是我的滚动窗格除了 vScroll/vScrollKnob Ninepatch (那个小白方块)之外没有显示任何内容 它看起来像这样:

screenshot.

        private void setupLayout()
{
    String[] listEntries = {"1","2","3","4","5"};
    ListStyle listStyle = new ListStyle();  
    NinePatch example = new NinePatch(new Texture(Gdx.files.internal("data/example.9.png")));       
    listStyle.selectedPatch = example;
    listStyle.font = new BitmapFont();
    mList = new List(listEntries,listStyle);

    ScrollPaneStyle paneStyle = new ScrollPaneStyle();
    paneStyle.vScroll = example;
    paneStyle.vScrollKnob = example;        
    mListScroll = new ScrollPane(mList,paneStyle);
    mListScroll.setScrollingDisabled(true, false);
    mListScroll.width = 500;
    mListScroll.height = 500;

    LabelStyle ls = new LabelStyle();
    ls.font = new BitmapFont();
    ls.fontColor = new Color(1.0f, 1.0f, 1.0f, 1.0f);
    mLabel = new Label("Label", ls);    

    TextButtonStyle buttonStyle = new TextButtonStyle();
    buttonStyle.font = new BitmapFont();
    mButton = new TextButton("Button",buttonStyle);

    Table table = new Table();
    table.add(mLabel);
    table.row();
    table.add(mButton);
    table.row();
    table.add(mListScroll);
    mStage.addActor(table);
}

如果我不使用滚动窗格并将列表直接添加到表格中,它会按预期工作,如下所示:

    Table table = new Table();
    table.add(mLabel);
    table.row();
    table.add(mButton);
    table.row();
    table.add(mList);             //changed mListScroll(scrollpane class) to mList(List class)
    mStage.addActor(table);

screenshot

但是当项目太多时它会延伸到我的屏幕底部。我在这里做错了什么?我需要在滚动窗格上设置另一个参数吗?

【问题讨论】:

    标签: java android libgdx scrollpane


    【解决方案1】:

    我相信您遇到的问题是您如何将内容添加到表格中。我建议使用以下代码而不是您的操作方式:

    Table table = new Table();
    table.add(mLabel);
    table.row();
    table.add(mButton);
    table.row();
    
    // Changing the table layout size itself.
    table.add(mListScroll).size(500, 500);
    
    mStage.addActor(table);
    

    如需更详细的说明,请参阅TableLayout,此处的快速入门向您展示了如何使用表格来布置对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多