2013-02-11 92 views
0

我在/ res目錄中有以下文件夾以支持不同的屏幕密度和方向。Android操作系統無法識別方向更改

/layout 
/layout-land 
/layout-small 
/layout-small-land 
/layout-large 
/layout-large-land 

在上述XML中,所有不同的是組件之間的對齊。例如,在人像:

<LinearLayout 
     android:id="@+id/linearLayout5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/linearLayout3" 
     android:layout_marginLeft="20dp" 
     android:layout_toRightOf="@+id/linearLayout3" /> 

而在景觀,

<LinearLayout 
     android:id="@+id/linearLayout5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/linearLayout3" 
     android:layout_marginLeft="60dp"  //widens the margin space 
     android:layout_toRightOf="@+id/linearLayout3" /> 

然而,當方向改變時,正在使用相應肖像XML。

這裏是AndroidManifest代碼片段。

<activity 
     android:name=".MyActivity" 
     android:configChanges="keyboard|keyboardHidden|orientation|screenSize" /> 

我與Android 2.2和3.7" 測試的應用程序在仿真器屏幕。有什麼我錯過了?

+0

在全部文件夾中是否有佈局xml?我的意思是,你確定你正在工作正確的目錄嗎? – Talha 2013-02-11 13:03:14

回答

2

然而,當方向改變時,正在使用相應肖像XML 。

那是因爲那是你告訴安卓做的,通過:

android:configChanges="keyboard|keyboardHidden|orientation|screenSize

刪除該屬性,Android將銷燬並重新創建您的活動,應用您的新佈局資源。

有了這個屬性,它是您的作業以某種方式加載這些新的佈局資源,在。

+0

礦是一個選項卡式應用程序。每個標籤在加載時使用AsyncTask從服務器獲取數據。如果我按照上面所述進行更改,每當方向改變時它是否會加載頁面? – Renjith 2013-02-11 14:00:35

+0

@Renjith:標籤不應該使用'AsyncTask'從服務器獲取數據「,至少不是盲目的。 – CommonsWare 2013-02-11 17:09:01