2015-12-21 61 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。这很容易实现,并且如果你想添加所有类的现有方法,一些额外的代码依赖于方向屏幕 - 我认为这比将所有方法放在一个方法中要容易得多。

因此,恢复,你的解决方案是好的,希望你能够实现它。