假设我定义了两个名称相同的布局,并将其中一个布局放在“layout-land”目录中。
如果两个布局文件包含相同的视图(和视图ID),那么我的片段/活动将找到它们并且那里没有问题。
但是,我面临的情况是肖像和风景设计确实不同,我需要更改每个布局文件中实现的自定义视图/窗口小部件类型。
如果视图ID或视图类型不同或未找到,则可能导致NullPointer异常或ClassCast异常。
我不喜欢在我的片段代码中检查类型或空值的想法,我认为必须有更好的方法来做到这一点,但我还没有找到它。
有没有人知道“酷”或至少更优雅的方式来实现这一目标?
谢谢!
答案 0 :(得分:0)
在布局文件夹中,在资源内部,您需要有两个单独的布局文件,一个用于纵向,一个用于横向。
示例:
- res
- - layout
- - - main_layout
- - - main_layout-land
如果你拥有它,你的应用程序现在将使用两种不同的布局文件,具体取决于它的方向。有关详细信息,请参阅This stackoverflow。