2015-12-21 63 views
0

我正在開發一個相當簡單的應用程序,在肖像中工作得很好(並且在橫向上很好,因爲它不會死),但是我想稍稍改變UI以更好地使用景觀方向。如何在方向更改上控制UI更改?

我知道如何創建一個橫向佈局 - 佈局土地等等 - 但我很想將幾個UI元素添加到肖像的不存在的橫向佈局。

顯然,如果我嘗試在縱向模式下在這些元素上運行代碼,Android會尖叫不能找到它們。

那麼,在這裏做的正確的事情只是將所有這些工作都包含在if (weAreInLandscape){}代碼中,還是有更好的方法呢?

感謝

+1

你只是檢查'findViewById'是否返回null,並讓代碼做一些明智的事情。這是隨着替代配置的佈局一直進行的。當然,如果你的對象保持對這個小部件的引用,那麼你必須在任何時候用這個引用做一些事情來檢查null。 –

回答

0

所以,是在這裏做了正確的事情,如果(weAreInLandscape){}代碼只是附上了所有這些工作裏面,或者是有沒有更好的辦法?

是的,這是一個非常好的方法,但首先你需要爲代碼中的兩個視圖分別編寫代碼,這裏是landscape。爲此刻評論景觀代碼。然後嘗試找出變化的方向。它可以通過下面這行代碼來完成:

getResources().getConfiguration().orientation 

閱讀:http://developer.android.com/reference/android/content/res/Configuration.html#orientation

如果你現在知道如何定位屏幕添加Boolean值將保持isLandscapeMode值。

爲什麼boolean。這很容易實現,並且如果你想添加所有類的現有方法,一些額外的代碼依賴於方向屏幕 - 我認爲這比將所有方法放在一個方法中要容易得多。

因此,恢復,你的解決方案是好的,希望你能夠實現它。