Android 如何控制方向更改时的UI更改?

Android 如何控制方向更改时的UI更改?,android,android-layout,Android,Android Layout,我正在开发一个相当简单的应用程序,它在纵向上运行得很好(在横向上也很好,因为它不会消亡),但我想稍微改变一下UI,以便更好地利用横向 我知道如何创建一个景观布局-布局土地等-但我很想添加一些UI元素的景观布局,不存在肖像的 很明显,如果我试图在纵向模式下运行这些元素的代码,Android会因为找不到它们而尖叫 那么,将所有这些工作都包含在if(weAreInLandscape){}代码中是正确的做法,还是有更好的方法 谢谢 那么,将所有工作都包含在if(weAreInLandscape){}代码

我正在开发一个相当简单的应用程序,它在纵向上运行得很好(在横向上也很好,因为它不会消亡),但我想稍微改变一下UI,以便更好地利用横向

我知道如何创建一个景观布局-布局土地等-但我很想添加一些UI元素的景观布局,不存在肖像的

很明显,如果我试图在纵向模式下运行这些元素的代码,Android会因为找不到它们而尖叫

那么,将所有这些工作都包含在
if(weAreInLandscape){}
代码中是正确的做法,还是有更好的方法

谢谢

那么,将所有工作都包含在if(weAreInLandscape){}代码中是正确的做法,还是有更好的方法

是的,这确实是一个很好的方法,但首先您需要为两个视图分别编写代码,而不是为一个特殊视图编写代码,这里是景观。此时,请评论风景区的代码。然后试着抓住变化的方向。这可以通过以下代码行完成:

getResources().getConfiguration().orientation
阅读:

如果您现在知道如何获取方向屏幕,请添加
Boolean
值,该值将保持
isLandscapeMode
的值

为什么
boolean
。它很容易实现,如果你想在你所有的类现有方法中添加一些额外的代码,这取决于方向屏幕——我认为这比把所有的方法都放在一个方法中要容易得多


因此,要继续,您的解决方案是好的,希望您能够实现它。

您只需检查
findViewById
是否返回null,并让代码执行合理的操作即可。对于备用配置的布局,这一直都在进行。当然,如果您的对象保留对小部件的引用,那么您必须在任何时候使用该引用执行操作时检查null。