2012-02-14 19 views
7

Tôi đã kiểm tra nhiều câu hỏi dựa trên điều này nhưng tôi vẫn không thể làm cho nó như thế nào để khóa hướng màn hình để cảnh quan thông qua các ứng dụng. ?Khóa định hướng Android làm phong cảnh trong suốt Ứng dụng?

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

này không hoạt động đối với tôi nó trở lại để potrait nếu hoạt động khác được sử dụng

+0

Vậy tại sao không thêm nó vào các hoạt động khác không? – WarrenFaith

Trả lời

10

Trong tệp kê khai, bạn có thể đặt screenOrientation thành landscape for all the activities. Bạn đã đặt cho one activity để các hoạt động khác đang mở theo chiều dọc, Vì vậy, đối với fixing hãy đặt all your activities with orientation làm hoạt động đầu tiên của bạn. Nó sẽ giống như thế này trong XML:

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

Ý anh là gì bởi hoạt động khác? Cấu hình là mỗi hoạt động. Giả sử ứng dụng của bạn có ba hoạt động thì bạn phải chỉ định từng hoạt động là cảnh quan.

1

Thuộc tính định hướng phải được đặt cho mọi hoạt động riêng lẻ của ứng dụng.

4

Bạn cũng có thể sử dụng sau đây trong phương pháp onCreate():

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

Chúc mừng!

+0

Điều này hoạt động tốt hơn bởi vì cách này tôi có thể sử dụng điều này chỉ một lần trong một lớp cơ sở và sử dụng nó trong suốt ứng dụng. Thêm thẻ xml vào từng Hoạt động trong tệp kê khai là một giải pháp dễ hỏng và dễ xảy ra lỗi. Tôi tự hỏi tại sao Android vẫn chưa giới thiệu một thẻ duy nhất để đặt định hướng trong suốt ứng dụng. – zeeshan

3

Hey check this out Trong tập tin androidmanifest bên trong hoạt động thêm nó

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

đã giải quyết được sự cố của bạn nếu đánh dấu nó là đã trả lời – Goofy

0

Để tránh phải làm điều này cho mọi hoạt động bạn có thể đăng ký một vòng đời gọi lại hoạt động trong lớp ứng dụng tùy chỉnh của bạn (nếu bạn có) .

Cái gì đó như ...

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) { 

      } 
     }); 
    } 
} 
Các vấn đề liên quan