0

libgdxs スクロール区画コントロールを機能させるのに問題があります。以下のコードは、ラベル、スクロールペイン内の項目のリスト、およびボタンを含む単純なレイアウトのコントロール設定を示しています。問題は、スクロール ペインに vScroll/vScrollKnob ナインパッチ (小さな白い四角形) 以外が表示されないことです。次のように表示されます。

スクリーンショット.

        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);

スクリーンショット

しかし、アイテムが多すぎると、画面の下部からはみ出してしまいます。ここで何が間違っていますか?スクロールペインに設定する必要がある別のパラメーターはありますか?

4

1 に答える 1

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を参照してください。ここでのクイックスタートでは、オブジェクトをレイアウトするためにテーブルを使用する方法について詳しく説明しています。

于 2013-03-14T20:51:48.570 に答える