【问题标题】:android layout landscape/portrait with different options具有不同选项的android布局横向/纵向
【发布时间】:2016-08-18 13:41:11
【问题描述】:

有没有办法直接告诉android横向还是纵向模式选择哪个布局资源?

我知道通常很简单,将普通的“main_layout.xml”放在“res/layout”文件夹中,将景观“main_layout.xml”放在“res/layout-land”文件夹中。

现在假设我有两个名为“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”作为横向? 我在这里错过了什么?

【问题讨论】:

    标签: android layout landscape-portrait


    【解决方案1】:

    方向改变后,视图将被重新创建,因此您可以通过以下方式检查设备的方向:

    Activity.getResources().getConfiguration().orientation
    

    根据结果,您可以:

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

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

    【讨论】:

    • 你好普亚。我忘了提到 atm 这是我最喜欢的解决方法。我只是希望有一种方法可以通过事先声明要选择的资源来避免显式监听方向变化。
    • @Marchand 由于您让用户在运行时选择首选布局,因此您需要在代码中添加一些逻辑来查找用户偏好并将其链接到您的可用布局
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多