2013-04-09 13 views
16

[अद्यतन] मैंने देखा कि एक अमान्य() अच्छा होगा लेकिन यह कुछ नहीं बदला! इसलिए मैंने तालिका के निर्माण और स्लाइडर + लेबल के साथ पूरे विकल्प में डाल दिया। बैकबटन टेबल के अंत में एक टेक्स्टबटन जोड़ा गया है। मुझे यह एक लंबा कोड पता है लेकिन मुझे इसकी आवश्यकता है।
स्लाइडर हमेशा डिफ़ॉल्ट चौड़ाई

मैं इस तरह एक स्लाइडर बनाया के रूप में मुझे पता है कि पृष्ठभूमि की न्यूनतम चौड़ाई स्लाइडर चौड़ाई के लिए प्रयोग किया जाता है:

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 हैं।
तो मुझे उम्मीद है कि आप लोग मुझे बता सकते हैं कि मैं क्या गलत कर रहा हूं। silder

उत्तर

13

मुझे समाधान मिला।
यह एक टेबल के अंदर है ताकि चौड़ाई को तालिका चौड़ाई एटिबूट द्वारा spec के लिए परिभाषित किया गया हो। कॉल और पंक्ति।
तो फिक्स कम शर्मीला है।

table.add(volumenSlider).width(600).height(60); 

और इसकी 600 विड्थ और 60 ऊंचाई।



उन्होंने अभी विकी को जोड़ा ताकि यह और अधिक स्पष्ट हो!

यूआई विजेट्स अपना स्वयं का आकार और स्थिति निर्धारित नहीं करते हैं। इसके बजाए, पैरेंट विजेट प्रत्येक बच्चे के आकार और स्थिति को सेट करता है। विजेट न्यूनतम, पसंदीदा और अधिकतम आकार प्रदान करते हैं जो माता-पिता संकेत के रूप में उपयोग कर सकते हैं। टेबल के रूप में कुछ अभिभावक विजेट, बच्चों को आकार और स्थिति के तरीके पर बाधाएं दी जा सकती हैं। विजेट को लेआउट में एक विशिष्ट आकार देने के लिए, विजेट का न्यूनतम, पसंदीदा, और अधिकतम आकार अकेला छोड़ दिया जाता है और माता-पिता में आकार की बाधाएं सेट की जाती हैं।

Layout at Wiki

आशा है कि यह आप कुछ मुद्दों पर भी ठीक करने के लिए मदद करता है हो सकता है।
सम्मान

संबंधित मुद्दे