[अद्यतन] मैंने देखा कि एक अमान्य() अच्छा होगा लेकिन यह कुछ नहीं बदला! इसलिए मैंने तालिका के निर्माण और स्लाइडर + लेबल के साथ पूरे विकल्प में डाल दिया। बैकबटन टेबल के अंत में एक टेक्स्टबटन जोड़ा गया है। मुझे यह एक लंबा कोड पता है लेकिन मुझे इसकी आवश्यकता है।
स्लाइडर हमेशा डिफ़ॉल्ट चौड़ाई
मैं इस तरह एक स्लाइडर बनाया के रूप में मुझे पता है कि पृष्ठभूमि की न्यूनतम चौड़ाई स्लाइडर चौड़ाई के लिए प्रयोग किया जाता है:
public OptionScreen(MainClass game) {
super(game);
preference = new PreferencesHelper();
font = this.getDefaultFont(25);
this.table = new Table();
if (Config.DEBUG)
this.table.debug();
// add volumenlabel
LabelStyle style = new LabelStyle(font, Color.WHITE);
volumenLabel = new Label(Config.VOLUMEN_LABLE, style);
table.add(volumenLabel).colspan(2);
table.row();
// add slider
Skin skin = new Skin();
skin.add("sliderbackground",
this.game.manager.get("data/sliderbackground.png"));
skin.add("sliderknob", this.game.manager.get("data/sliderknob.png"));
SliderStyle sliderStyle = new SliderStyle();
sliderStyle.background = skin.getDrawable("sliderbackground");
sliderStyle.background.setMinWidth(600f);
sliderStyle.knob = skin.getDrawable("sliderknob");
volumenSlider = new Slider(0f, 1f, 0.1f, false, sliderStyle);
volumenSlider.setValue(preference.getVolumen()); // load current volumen
volumenSlider.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
volumeValue.setText(String.format("%.01f",
volumenSlider.getValue()));
// sett the preference
preference.setVolumen(volumenSlider.getValue());
}
});
// add volslider to stage
table.add(volumenSlider);
volumenLabel.invalidate();
// table
style = new LabelStyle(font, Color.WHITE);
// set current volumen
volumeValue = new Label(
String.format("%.01f", volumenSlider.getValue()), style);
volumenLabel.setAlignment(2);
table.add(volumeValue).width(50f);
table.row();
initBackButton();
// init table
table.setPosition(Config.VIRTUAL_VIEW_WIDTH/2,
Config.VIRTUAL_VIEW_HEIGHT/2 - Config.BLOCK_SIZE * 10);
// add a nice fadeIn to the whole table :)
table.setColor(0, 0, 0, 0f);
table.addAction(Actions.fadeIn(2f)); // alpha fade
table.addAction(Actions.moveTo(Config.VIRTUAL_VIEW_WIDTH/2,
Config.VIRTUAL_VIEW_HEIGHT/2, 2f)); // move to center of the
// screen
// add to stage
this.stage.addActor(table);
}
यह कोई चौड़ाई या इस तरह के साथ एक मेज के अंदर है। मैं पहले से ही एक दृष्टि डाली, तो चौड़ाई खंडिका है और अगर स्लाइडर के prefWidth के लिए गणना मेरी 600.
Math.max(style.knob == null ? 0 : style.knob.getMinWidth(), style.background.getMinWidth())
ले करता है इस Sliderclass अंदर स्लाइडर की चौड़ाई के लिए गणना है। यदि मैं इसकी गणना करता हूं और इसे लॉग करता हूं, तो मुझे 600 मिलते हैं।
सबकुछ मुझे सही लगता है लेकिन 600 मैं बसने के लिए स्लाइडर छोटा है।
पृष्ठभूमि और knobtextures 24x24 हैं।
तो मुझे उम्मीद है कि आप लोग मुझे बता सकते हैं कि मैं क्या गलत कर रहा हूं।