5

मैं वर्तमान में अपने एप्लिकेशन को बैकपोर्ट कर रहा हूं ताकि इसे 3.0 से पहले एक्शनबर्सहेलॉक का उपयोग कर डिवाइस पर काम कर सकें।एक्शनबारशेलॉक - लैंडस्केप ओरिएंटेशन में टैब उत्तरदायी नहीं है

यदि कोई उपयोगकर्ता पोर्ट्रेट मोड में एप्लिकेशन लॉन्च करता है और फिर स्क्रीन को घुमाता है और टैब का चयन करने का प्रयास करता है तब तक कुछ भी नहीं होता जब तक कि उपयोगकर्ता किसी अन्य क्रिया को पूर्ववत नहीं करता। वर्तमान निर्माण जो इसे करता है यहां डाउनलोड किया जा सकता है (शेरलॉक-अल्फा 1) http://tinyurl.com/cz95nup

टैब्स नीचे दिए तरीक़े

 bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     bar.addTab(bar.newTab().setText("tab1").setTabListener(this),false); 
     bar.addTab(bar.newTab().setText("tab2").setTabListener(this),false); 
     bar.addTab(bar.newTab().setText("tab3").setTabListener(this),false); 

में जोड़ रहे हैं यह भी अगर आप परिदृश्य में आवेदन शुरू और फिर पोर्ट्रेट मोड में इसका इस्तेमाल करते हैं (चित्र टैब काम नहीं करेगा) होता है।

यह देशी एक्शनबार चलाने वाले उपकरणों पर ठीक काम कर रहा है।

+0

अभी आप क्या minSDKversion चल रहे हैं? – Davek804

+0

@ डेवके 804 एंड्रॉइड: minSdkVersion = "7" – bencallis

+0

मैंने हाल ही में वही किया और मुझे इस बग का अनुभव नहीं हुआ। क्या यह तब भी होता है जब आप अपना मिनवर्सन 10 पर स्विच करते हैं? आप किस संस्करण डिवाइस पर इसका परीक्षण कर रहे हैं? क्या यह एवीएम है? – Davek804

उत्तर

11

क्या आप मेनिफेस्ट में कॉन्फ़िगरेशन परिवर्तनों को प्रबंधित कर रहे हैं?

android:configChanges="orientation" 

तो यह नकली सजावट का विचार है कि ActionBarSherlock रोटेशन जो कई समस्याओं का कारण होगा पर फिर से प्रारंभ करने के लिए स्थापित करता है की अनुमति नहीं दे रहा है।

कॉन्फ़िगरेशन परिवर्तनों को संभालने के लिए जितना संभव हो उतना कम इस्तेमाल किया जाना चाहिए। दस्तावेज बताता है कि it should be used as a last resort

लाइब्रेरी के भविष्य के संस्करण उम्मीदवारों को ऐसा करने में सक्षम होंगे जो ऐसा करने का विकल्प चुनते हैं।

+0

मुझे लगा कि यह इससे संबंधित हो सकता है। मुझे अपना कोड दोबारा काम करना होगा। वर्तमान में यह सूची को फिर से डाउनलोड करने और अभिविन्यास परिवर्तन पर सूची खंड की चौड़ाई को कॉन्फ़िगर करने के लिए उपयोग किया जाता है। यह कैसे एक अलग तरीके से करने के बारे में कोई आसान विचार है? सहायता का शुक्रिया। – bencallis

0

मुझे एक ही समस्या है। मुझे इन लाइनों को जोड़ना पड़ा और यह एवीडी पर ठीक है, यह नहीं पता कि यह वास्तविक उपकरणों पर काम कर रहा है या नहीं।

<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" /> 
+0

मेरे लिए काम नहीं कर रहा है। – bencallis

1

मुझे इसके लिए एक समाधान मिला। शायद नहीं एक उचित कार्यान्वयन क्योंकि यह टैब लेआउट फिर से पैदा करता है, लेकिन यह काम करता है :)

https://github.com/JakeWharton/ActionBarSherlock/pull/549

3

मेरे लिए यह ओरिएंटेशन परिवर्तन के बाद अनुत्तरदायी था, लैंडस्केप मोड में नहीं। परीक्षण और त्रुटियों की एक बहुत कुछ करने के बाद मैं इस बग के लिए निम्नलिखित समाधान मिल गया है:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
    super.onConfigurationChanged(newConfig); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
} 

चाल तो सूची टैब पर पूर्ववत नेविगेशन मोड बदलने के लिए है।

+0

अरे आदमी यह कमाल है! – rocknow

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