2012-02-14 8 views
7

मैंने इस पर आधारित कई प्रश्नों की जांच की है लेकिन फिर भी मैं इसे ऐप के माध्यम से स्क्रीन अभिविन्यास को लॉन्च करने के तरीके को प्राप्त करने में सक्षम नहीं हूं। ?ऐप के दौरान एंड्रॉइड अभिविन्यास को परिदृश्य के रूप में लॉक करें?

<activity android:screenOrientation="landscape" 
     android:name=".BasicLayoutCheckActivity" 
     /> 

यह मेरे लिए यह करता है, तो एक और गतिविधि

+0

तो क्यों के साथ-साथ अन्य गतिविधियों में जोड़ने से नहीं? – WarrenFaith

उत्तर

10

मैनिफेस्ट में, आप स्क्रीनऑरिएंटेशन को landscape for all the activities पर सेट कर सकते हैं। आपने one activity के लिए रखा है, इसलिए अन्य गतिविधियां पोर्ट्रेट में खुल रही हैं, इसलिए fixingall your activities with orientation को अपनी पहली गतिविधि के रूप में सेट करें। यह XML में कुछ इस तरह दिखेगा:

<activity android:name=".BasicLayoutCheckActivity" android:screenOrientation="landscape"></activity> 
0

यदि आप किसी अन्य गतिविधि से क्या मतलब है प्रयोग किया जाता है potrait में वापस आता है काम नहीं कर रहा? विन्यास प्रति गतिविधि है। कहें कि क्या आपके एप्लिकेशन में तीन गतिविधि हैं तो आपको प्रत्येक को परिदृश्य के रूप में निर्दिष्ट करना होगा।

1

उन्मुखीकरण संपत्ति आवेदन के हर व्यक्ति की गतिविधि करने के लिए सेट किया जाना है।

4

तुम भी onCreate() विधि में निम्न का उपयोग कर सकते हैं:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

नमस्ते!

+0

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

3

अरे यह बाहर की जाँच गतिविधि के अंदर androidmanifest फ़ाइल में जोड़ने यह

<activity 
android:screenOrientation="landscape" 
android:configChanges="keyboard|keyboardHidden|orientation"> 
+0

ने इसे अपनी समस्या का समाधान किया है, इसलिए इसे उत्तर के रूप में चिह्नित करें – Goofy

0

हर गतिविधि आप अपने कस्टम आवेदन कक्षा में एक गतिविधि जीवन चक्र कॉलबैक रजिस्टर कर सकते हैं के लिए यह करने के लिए से बचने के लिए (अगर कोई है तो) ।

कुछ की तरह ...

public class MyApplication extends Application { 

    @Override 
    public void onCreate() { 
     super.onCreate(); 

     //Lock orientation in landscape for all activities, yaay! 
     registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { 
      @Override 
      public void onActivityCreated(Activity activity, Bundle savedInstanceState) { 
       activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);     
      } 

      @Override 
      public void onActivityStarted(Activity activity) { 

      } 

      @Override 
      public void onActivityResumed(Activity activity) { 

      } 

      @Override 
      public void onActivityPaused(Activity activity) { 

      } 

      @Override 
      public void onActivityStopped(Activity activity) { 

      } 

      @Override 
      public void onActivitySaveInstanceState(Activity activity, Bundle outState) { 

      } 

      @Override 
      public void onActivityDestroyed(Activity activity) { 

      } 
     }); 
    } 
} 
संबंधित मुद्दे