2011-08-20 76 views

回答

7

您可以通過在manifest.xmlactivity元素中聲明特定的屬性來完成此操作。有問題的元素被稱爲android:configChanges,您需要註冊字符串值orientation

<activity android:name=".MyActivity" 
     android:configChanges="orientation" 
     android:label="@string/app_name"> 

documentation

現在,當這些配置的一個改變,MyActivity不 重新啓動。相反,活動接收對onConfigurationChanged()的調用 。此方法傳遞一個配置對象 ,它指定新的設備配置。通過讀取 配置中的字段,您可以通過更新界面中使用的資源來確定新配置並進行適當的更改。 在這個方法被調用的時候,你的作業資源對象是 更新基礎上,新的配置,返回的資源,所以你可以 輕鬆重置您的UI元素,而無需系統重新啓動 活動

這樣算下來這會導致您的Activity無法重新啓動,並且還會回撥到以便可以自己處理更改。

+0

你能給我一些示例代碼嗎?我似乎無法得到它的工作。 – gsfd

+0

什麼是你似乎無法工作?你能通過編輯提供你的問題的更新嗎?如果你提到你所嘗試過的東西,以及具體哪些不起作用,這將會有所幫助。 –

+3

除了「方向」之外,根據您的問題,您可能還需要添加相關的鍵盤配置更改以處理鍵盤操作,因此您可能希望放置的值爲「方向|鍵盤|鍵盤隱藏」。正如尼古拉斯所說,你可能想/需要自己處理onConfigurationChanged() – momo

0

如果你閱讀文檔here,你會看到,你可以指定你的清單如下:

<activity ... 
    android:configChanges="orientation"> 

一旦你有了這個,你可以實現onConfigurationChanged()方法收到有關方向改變的通知,或者只是使用基類的實現。

+0

複製其他人的好工作 –

+2

@Arvin兩個答案相隔4分鐘。這個答案不太可能是一個「副本」,只是一個同時發佈的等價答案。它始終發生,並不是什麼大不了的事情。除非後面的答案實際上增加了一些有用的東西,否則人們普遍贊成更早的答案。你的評論聽起來像酸葡萄,因爲你自己的答案是低調的。 –

相關問題