2012-12-12 14 views
8

मैं अपने आवेदन में एक्शनबार का उपयोग कर रहा हूं।
मैं ActionBar की ऊंचाई प्रोग्राम के चाहते हैं इसलिए मैं उपयोग कर रहा हूँ:
एक्शनबार की ऊंचाई प्राप्त करें

ActionBar.getHeight(); 


लेकिन मैं ऊंचाई 0 मूल्य मिल रहा है। तो मैं एक्शनबार की ऊंचाई कैसे प्राप्त कर सकता हूं?

उत्तर

14

मुझे ActionBar.getHeight()
का विकल्प मिला यदि कोई भी एक ही समस्या का सामना कर रहा है तो this लिंक उपयोगी है।

जबकि @ birdy के जवाब एक विकल्प है कि आप स्पष्ट रूप ActionBar आकार वहाँ आकार है कि मैं समर्थन प्रलेखन में पाया ताला लगा के बिना यह ऊपर खींचने के लिए एक रास्ता है नियंत्रित करने के लिए चाहते हैं। यह थोड़ा अजीब है लेकिन यह मेरे लिए काम करता है। आपको एक संदर्भ की आवश्यकता होगी, यह उदाहरण किसी गतिविधि में मान्य होगा। ~ Anthony

// Calculate ActionBar's height 
TypedValue tv = new TypedValue(); 
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) { 
    actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics()); 
} 
+0

"एंड्रॉयड। R.attr.actionBarSize "एंड्रॉइड संस्करण 2.3 में काम नहीं कर रहा है, लेकिन" R.attr.actionBarSize "एंड्रॉइड सभी संस्करण काम कर रहा है। बस "android.R.attr.actionBarSize" और आदि के बजाय "R.attr.actionBarSize" का उपयोग करें –

+0

कोई भी जावा (javafx) में इसे कैसे जानता है? – Lealo

3

ActionBar ऊंचाई को खोजने के लिए एक आसान तरीका गतिविधि onPrepareOptionMenu विधि से है।

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
      .... 
      int actionBarHeight = getActionBar().getHeight()); 
      ..... 
    } 
5

नीचे कोड भी मदद करेगा। आप इस

final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes(
        new int[] { android.R.attr.actionBarSize }); 
mActionBarSize = (int) styledAttributes.getDimension(0, 0); 
styledAttributes.recycle(); 

जवाब इस सवाल What is the size of ActionBar in pixels?

से नकल कर रहा है तो आप बस ऐसा कर सकता है Android के नए संस्करण के लिए करने के लिए getContext बदलने के लिए() की आवश्यकता हो सकती:

getActionBar().getHeight() 
+0

@Tim हांग की सराहना करते हैं। मुझे इस पर गौर करना होगा। – KDeogharkar

+0

एंड्रॉइड के नए संस्करण के लिए आप बस यह कर सकते हैं: getActionBar()। GetHeight() –

+3

getHeight() यदि शो चल रहा है तो भी 0 वापस आ सकता है (शायद इसकी एनीमेशन के दौरान)। आपको कुछ मामलों में विशेषता विधि का उपयोग करने की आवश्यकता हो सकती है। –

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