Q:

Scrollpane strange scaling in libgdx

The text drawn by font and drawn in List inside Scrollpane seem with different sizes. This is how I draw text:
font.draw(batch, "score", 500, 700);

And how I draw text in List inside ScrollPane:
 tfBackground = new Texture(Gdx.files.internal("tfbackground.png"));
    knob_scroll = new Texture(Gdx.files.internal("knob_scroll.png"));
    scroll_horizontal = new Texture(Gdx.files.internal("scroll_horizontal.png"));

    sps.background = new TextureRegionDrawable(new TextureRegion(tfBackground));
    sps.vScroll = new TextureRegionDrawable(new TextureRegion(scroll_horizontal));
    sps.vScrollKnob = new TextureRegionDrawable(new TextureRegion(knob_scroll));

    listS = new List.ListStyle();
    listS.font = font;
    listS.fontColorSelected = Color.BLACK;
    listS.fontColorUnselected = Color.GRAY;
    listS.selection = new TextureRegionDrawable(new TextureRegion(tfBackground));

    scoreList = new List<String>(listS);

    items = new Array<String>();

    res += "score 1, score 2, score 3, score 4, score 5, score 6, score 7, score 8, score 9, score 10";

    String name_score[] = res.split(",");
    for(String s: name_score)
    {
        items.add(s);
    }

    scoreList.setItems(items);
    scoreList.pack();

    scrollPane = new ScrollPane(scoreList, sps);

    addActor(scrollPane);

And this is the weird(?) result:

It seems that scrollpane is scaling somehow. I don't want it the text inside scrollpane to be scaled.
This is the whole code:
public class ResultScreen extends AbstractScreen{

private OrthographicCamera camera;
private Viewport viewport;
private BitmapFont font;
private SpriteBatch batch;
private String res;
private float time = 10;
private Texture tfBackground, knob_scroll, scroll_horizontal;
private List<String> scoreList;
private ScrollPane scrollPane;
private List.ListStyle listS;
private ScrollPane.ScrollPaneStyle sps;
private Array<String> items;

public ResultScreen(float time, String res) {
    this.time = time;
    font = new BitmapFont(Gdx.files.internal("aw.fnt"));
    font.setColor(Color.BLACK);
    camera = new OrthographicCamera();
    viewport = new StretchViewport(800, 1024, camera);
    //viewport = new FitViewport(1240, 800, camera);
    batch = new SpriteBatch();
    camera.position.x = 400;
    camera.position.y = 512;
    viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    this.res = res;
    fillList();
}

@Override
public void buildStage() {
    // TODO Auto-generated method stub

}

@Override
public void resize(int width, int height) {
    viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}

@Override
public void render(float delta) {
    super.render(delta);
    Gdx.gl.glClearColor(1, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    batch.setProjectionMatrix(camera.combined);
    batch.begin();
    font.draw(batch, "score", 500, 700);
    batch.end();

    draw();
    act();
}

private void fillList()
{
    sps = new ScrollPane.ScrollPaneStyle();

    tfBackground = new Texture(Gdx.files.internal("tfbackground.png"));
    knob_scroll = new Texture(Gdx.files.internal("knob_scroll.png"));
    scroll_horizontal = new Texture(Gdx.files.internal("scroll_horizontal.png"));

    sps.background = new TextureRegionDrawable(new TextureRegion(tfBackground));
    sps.vScroll = new TextureRegionDrawable(new TextureRegion(scroll_horizontal));
    sps.vScrollKnob = new TextureRegionDrawable(new TextureRegion(knob_scroll));

    listS = new List.ListStyle();
    listS.font = font;
    listS.fontColorSelected = Color.BLACK;
    listS.fontColorUnselected = Color.GRAY;
    listS.selection = new TextureRegionDrawable(new TextureRegion(tfBackground));

    scoreList = new List<String>(listS);

    items = new Array<String>();

    res += "score 1, score 2, score 3, score 4, score 5, score 6, score 7, score 8, score 9, score 10";

    String name_score[] = res.split(",");
    for(String s: name_score)
    {
        items.add(s);
    }

    scoreList.setItems(items);
    scoreList.pack();

    scrollPane = new ScrollPane(scoreList, sps);
    scrollPane.setWidth(300);

    System.out.println(Gdx.graphics.getWidth());

    addActor(scrollPane);

}

}

PS: Abstract screen extends Stage and implements Screen.

A:

Your constructor doesn't call through to a superclass constructor, which would also need to call through to one of the Stage constructors to make sure your Stage is properly set up.
What's going on here is that you set up a camera and viewport (and SpriteBatch, although not part of the issue) that are used only for your font.draw and are distinct from what the Stage uses.
Your class needs to look something like this:
public class ResultScreen extends AbstractScreen{

    private OrthographicCamera camera;
    private Viewport viewport;
    private BitmapFont font;
    private Batch batch; //<------------changed
    private String res;
    private float time = 10;
    private Texture tfBackground, knob_scroll, scroll_horizontal;
    private List<String> scoreList;
    private ScrollPane scrollPane;
    private List.ListStyle listS;
    private ScrollPane.ScrollPaneStyle sps;
    private Array<String> items;

    public ResultScreen(float time, String res) {
        super(new StretchViewport(800, 1024)); //Call an AbstractScreen constructor that calls a Stage constructor
        this.time = time;
        font = new BitmapFont(Gdx.files.internal("aw.fnt"));
        font.setColor(Color.BLACK);
        camera = getCamera(); //<------------changed
        viewport = getViewport(); //<------------changed
        batch = getBatch(); //<------------changed
        camera.position.x = 400;
        camera.position.y = 512;
        // unnecessary can remove because this is called in resize: viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
        this.res = res;
        fillList();
    }
}

For example, AbstractScreen could have a constructor like this:
public AbstractScreen(Viewport viewport){
    super(viewport);
}

