2016-04-25 60 views
0

有没有什么办法可以直接告诉android哪些布局资源可以选择横向或纵向模式?android布局风景/不同选项的肖像

我通常知道这很简单,在“res/layout-land”文件夹的“res/layout”文件夹和横向“main_layout.xml”中放置普通的“main_layout.xml”。

现在假设我有两个名为“main_layout_blue.xml”和“main_layout_red.xml”的布局。用户可以选择其中一个,我可以设置适当的布局。在方向变化再次一切都很好。

我遇到困难的方式是给用户一个选项,为不同的方向设置不同的布局,如纵向模式下的“main_layout_blue.xml”和横向模式下的“main_layout_red.xml”。

是否有android选项明确指示系统对纵向使用“res/layout/main_layout_blue.xml”,横向使用“res/layout-land/main_layout_red.xml”? 我在这里错过了什么?

回答

0

方向变化后,视图将被重建,所以你可以通过下面的检查设备的方向:

Activity.getResources().getConfiguration().orientation 

,并根据结果,您可以:

if(portrait) 
     setContentView(R.layout.blue) 
    else 
     setContentView(R.layout.red) 

但请记住将所有资源放在/布局文件夹中

+0

Hello Pooya。我忘了提到,这是我最喜欢的解决方法。我只是希望有一种方法可以避免明确地倾听方向变化,方法是事先声明选择哪种资源。 – Marchand

+0

@Marchand由于您让用户在运行时选择首选布局,因此您需要在代码中添加一些逻辑以查找用户首选项并将其链接到可用的布局 – Pooya