First, that is impossible at that point because when getPrefWIdth() is invoked, getStage() returns null.
We can use getStage() only in layout(), draw(), act() and other methods that are invoked after.

Plus even if we could access getStage().getWidth(), that would return a wrong value, if we imagine the worst case scenario an aspect ratio of something like 100:1, the Stage lengthens the shortest dimension (in this case its width) to fill the viewport and don't draw black vertical bars. That wouldn't return my desired Width but something much higher.

If you know any other way to do this withoud static methods...