2012-04-14 57 views
0

我正在編寫一個應用程序,它在縱向視圖頂部有一個畫廊,當您單擊一張圖片時,它將膨脹並填滿整個屏幕。如何在屏幕方向更改時開始新的活動? Android

然而,這種方式在橫向模式下畫廊掩蓋了大部分圖片,它通常看起來很糟糕。

我做了一個GridView的橫向模式。我現在遇到的問題是在方向更改時將其從庫活動更改爲Gridview活動。有任何想法嗎?

+0

http://www.tekkie.ro/quick-n-dirty/how-to-change-your-layout-in-android-landscape-portrait-mode/ – waqaslam 2012-04-14 21:53:52

回答

1

添加到您的活動:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    startActivity(newActivity) 
} 

注意,這是一個壞主意。其實,這是一個非常糟糕的主意。一個更好的選擇是要麼強制一個方向,要麼創建一個在兩個方向看起來都很棒的佈局。

+0

謝謝你的工作。對於可能正在閱讀本文的其他人來說,您需要將android:configChanges =「orientation」添加到清單中。 – 2012-04-15 01:31:34

+0

爲什麼這是一個壞主意btw? – 2012-04-15 01:32:14

+0

@Matthew Lueder onConfigurationChanged()實際上旨在用於將數據從一個方向更改保留到下一個方向。理論上,在我展示的實現中,用戶可以改變方向,並建立大量積壓的活動,這會爲用戶創建(至少我假設)意想不到的後退按鈕行爲。所以確保你也適當地使用finish()。因此,簡而言之,只有在您需要絕對需要啓動活動時,纔會非常小心地使用它。 – 2012-04-15 02:12:43

2

作出風景模式額外的佈局XML文件,並把它放入文件夾「佈局土地」

6

做到這一點是定義兩個佈局,一個佈局端口和一個在layou-的正確方法土地目錄。也就是說,您將擁有以下兩種佈局: res/layout-port/main.xmlres/layout-land/main.xml

在您的軟件中,您只需編寫secContentView(R.layout.main);,android將負責在設備旋轉時應用正確的佈局。