2011-12-14 12 views
5

मेरे पास एक पूर्ण स्क्रीन व्यूअर वाला एक मौजूदा ऐप है जो विकल्प दिखाने के लिए मेनू बटन का उपयोग करता है। मैंने एंड्रॉइड सेट किया है: targetSdkVersion 14 होने के लिए पूरे ऐप थीम को देशी आईसीएस एपीपी की तरह दिखने के लिए।एंड्रॉइड रखने के दौरान आईसीएस पर मेनू बटन दिखा रहा है: targetSdkVersion 14

समस्या यह है कि गतिविधि शैली को पूर्ण स्क्रीन होने पर सेट करते समय, मेरे पास मेनू बटन नहीं है, और यदि मैं एक्शनबार दिखाता हूं, तो मेनू को प्रदर्शित करने के लिए ऐप बहुत अधिक स्क्रीन स्पेस लेता है।

आईसीएस पर पूर्ण स्क्रीन में नियमित मेनू बटन रखने का कोई तरीका है?

उत्तर

2

मुझे लगता है कि आईसीएस के एक्शन बार के केवल छोटे हिस्से को दिखाने का कोई तरीका नहीं है - कम से कम यह अजीब लगेगा। आपके लिए सबसे अच्छा तरीका आपके ऐप "मेनू बटन" में कहीं भी बना है। android.os.Build.VERSION.SDK_INT

2

वहाँ एक तरीका है अगर आप hackiness और प्रतिबिंब के साथ आराम कर रहे हैं: आप हार्डवेयर मेनू बटन के साथ फोन के लिए इस बटन को छिपाना चाहते हैं SDK संस्करण की जाँच करने के विकल्प नहीं है। Daniel Lew इसे his blog में उल्लेखित करता है। वह उचित रूप से नोट करता है कि यह वास्तव में उत्पादन कोड के साथ उपयोग करने के लिए नहीं है। एंड्रॉइड डेवलपर्स भविष्य में इस क्षमता को दूर कर सकते हैं।

public static void addLegacyOverflowButton(Window window) { 
    if (window.peekDecorView() == null) { 
    throw new RuntimeException("Must call addLegacyOverflowButton() after setContentView()"); 
    } 

    try { 
    window.addFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null)); 
    } 
    catch (NoSuchFieldException e) { 
    // Ignore since this field won't exist in most versions of Android 
    } 
    catch (IllegalAccessException e) { 
    Log.w(TAG, "Could not access FLAG_NEEDS_MENU_KEY in addLegacyOverflowButton()", e); 
    } 
} 
संबंधित मुद्दे