Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android libGDX滚动窗格不滚动单个标签_Android_Libgdx_Scrollpane - Fatal编程技术网

Android libGDX滚动窗格不滚动单个标签

Android libGDX滚动窗格不滚动单个标签,android,libgdx,scrollpane,Android,Libgdx,Scrollpane,我正在向使用libGDX创建的游戏添加“如何玩”说明。说明滚动只需显示在屏幕的固定区域内,而不需要显示为全屏滚动。我创建了一个舞台,添加了一些背景和其他演员,然后添加了一些标签,即标题(在滚动条外)和说明文本(唯一需要滚动的东西)。它也不应该水平滚动,而应该垂直滚动。所以我设置了标签的宽度并包装了文本。简而言之,我需要完全控制滚动条的位置和大小,它不应该是全屏的。因此,我编写了以下代码来添加指令滚动条: private void addHelpContent() { int width

我正在向使用libGDX创建的游戏添加
“如何玩”
说明。说明滚动只需显示在屏幕的固定区域内,而不需要显示为全屏滚动。我创建了一个舞台,添加了一些背景和其他演员,然后添加了一些标签,即标题(在滚动条外)和说明文本(唯一需要滚动的东西)。它也不应该水平滚动,而应该垂直滚动。所以我设置了标签的宽度并包装了文本。简而言之,我需要完全控制滚动条的位置和大小,它不应该是全屏的。因此,我编写了以下代码来添加指令滚动条:

private void addHelpContent()
{
    int width = (int) (0.85*alertBounds.width);
    int height = scrollStartY - scrollEndY;
    int x = Constants.APP_WIDTH/2 - width/2;

    BitmapFont font = Model.getInstance().createFont(Constants.ROCK_NORMAL_FONT_FILE_PATH, 20);
    Label.LabelStyle labelStyle = new Label.LabelStyle();
    labelStyle.font = font;
    labelStyle.fontColor = Color.valueOf("A07E10FF");
    Label label = new Label(getHelpString(), labelStyle);
    label.setWidth(width);
    label.setWrap(true);
    label.pack();
    label.setFillParent(true);
    ScrollPane scrollPane = new ScrollPane(label);
    scrollPane.setBounds(x, scrollEndY, width, height); //This should be the bounds of the scroller and the scrollable content need to be inside this
    scrollPane.layout();
    scrollPane.setTouchable(Touchable.enabled);
    addActor(scrollPane);
}
但现在我面临两个问题:

  • 我无法滚动滚动窗格。标签在边界处被切掉,使滚动窗格无用
  • 除了标签之外的其他参与者最初不会出现,只有在我滚动滚动滚动窗格(而且它不会滚动)之后才会出现。如果我对添加滚动窗格的代码进行注释,则不存在此问题。因此,我确信它与滚动窗格本身有关

  • 有人能帮我解决这个问题吗?

    滚动面板有点难用。根据我的理解,您无法设置滚动窗格的大小,因为它会自动将自身大小调整为与标签相同的大小

    诀窍是将滚动窗格添加到表中。然后,当标签的大小大于表格的大小时,滚动窗格将允许标签在表格内滚动。要确保它不会水平滚动,请将表格的宽度设置为与标签相同的宽度。您也不必设置滚动窗格的边界,让它根据标签调整自身大小

    然后,添加包含滚动窗格的表,而不是添加滚动窗格

    addActor(table);
    

    我只是忘了在stage类中添加
    act()
    方法。添加它解决了这个问题