LibGDX滚动窗格禁用滚动x

LibGDX滚动窗格禁用滚动x,libgdx,scrollpane,Libgdx,Scrollpane,我在libgdx中有一个滚动窗格。上下滚动已启用(使用触摸),我想用按钮左右滚动,但禁用触摸滚动 'rightButton.addListener(new ChangeListener() { public void changed (ChangeListener.ChangeEvent event, Actor actor) { scrollPane.layout(); scrollPane.setScrollingDisabled(false, false); scrollPane.

我在libgdx中有一个滚动窗格。上下滚动已启用(使用触摸),我想用按钮左右滚动,但禁用触摸滚动

'rightButton.addListener(new ChangeListener() {
 public void changed (ChangeListener.ChangeEvent event, Actor actor) {
 scrollPane.layout();
 scrollPane.setScrollingDisabled(false, false);
 scrollPane.setScrollX(scrollPane.getMaxX());
 scrollPane.setScrollingDisabled(false, false);
 scrolled = true;
 }
 });
'
这是我的RightButton侦听器,但它不会滚动X。

scrollTo()
ScrollPane
的重载方法,您可以使用此方法将窗格滚动到指定的偏移量。在侦听器的方法中调用此方法

我已经测试过了,你可以测试我的代码

public class MyGdxGame extends ApplicationAdapter {

    Texture img;
    Stage stage;
    ScrollPane scrollPane;
    Group group;

    @Override
    public void create () {

        img = new Texture("badlogic.jpg");
        stage=new Stage();
        Gdx.input.setInputProcessor(stage);

        final float w=Gdx.graphics.getWidth();
        final float h=Gdx.graphics.getHeight();

        group=new Group();
        group.setSize(2*w,h);
        scrollPane=new ScrollPane(group);
        scrollPane.setSize(w,h);
        scrollPane.setFlickScroll(false);

        stage.addActor(scrollPane);

        Image image1=new Image(img);
        image1.setPosition(w*.5f, h/2f);
        image1.setScale(.5f);
        group.addActor(image1);

        Image image2=new Image(img);
        image2.setPosition(w*.75f, h/3f);
        image2.setScale(.5f);
        group.addActor(image2);

        stage.addListener(new ClickListener(){

            @Override
            public void clicked(InputEvent event, float x, float y) {

                float offsetPositionX=w*.5f;
                float offsetPositionY=0;

                scrollPane.scrollTo(offsetPositionX,offsetPositionY,w,h);

                super.clicked(event, x, y);
            }
        });
    }

    @Override
    public void render () {
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        stage.act();
        stage.draw();
    }

    @Override
    public void dispose () {
        img.dispose();
        stage.dispose();
    }
} 

谢谢你的回答,但我的问题还没有解决。我想禁用滚动滚动窗格通过触摸在X轴上滚动,并且只能通过按钮滚动它检查我的更新答案。您可以通过scrollpane.setFlickScroll(false)从滚动窗格中删除flickScrollListener;在那之后,它不会通过你的触摸滚动。是的,听起来不错,但是如果我是对的,它会禁用Y轴上的触摸滚动,有没有一种方法只会禁用X轴上的触摸滚动?