首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态安卓: LinearLayout的方向值取决于设备方向,不需要2个相同的XML布局。

问动态安卓: LinearLayout的方向值取决于设备方向,不需要2个相同的XML布局。
EN

Stack Overflow用户
提问于 2014-09-23 00:10:12
回答 2查看 859关注 0票数 2

我有一个XML布局,它在横向和纵向方向上工作得很好,但有一个例外- LinearLayout中的两个按钮需要水平放置在横向,垂直放置在纵向设备方向。

我想知道是否有一些简单的方法可以只定义一个动态变量或字符串放在XML布局文件中,而不必在layout和layout-land文件夹中创建两个完全相同的副本。

EN

回答 2

Stack Overflow用户

发布于 2014-09-23 22:34:47

我最终通过编程完成了这项工作:

代码语言:javascript
复制
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
     // landscape
     linearlayout.setOrientation(LinearLayout.HORIZONTAL); 
} else {
    // portrait  
    linearlayout.setOrientation(LinearLayout.VERTICAL); 
}

Source

票数 1
EN

Stack Overflow用户

发布于 2020-09-06 23:41:56

方向是引擎盖下的枚举,0表示水平,1表示垂直。我所做的是在res/values/integer.xml中放置一个默认的景观条目为0,然后在res/values-port/integer.xml中放置相同的条目,但是值为1。

所以我有:

/res/values/Integrger.xml

代码语言:javascript
复制
<resources>
    <item name="linearlayoutOrientation" type="integer">0</item>
</resources>

/res/values-port/intger.xml

代码语言:javascript
复制
<resources>
    <item name="linearlayoutOrientation" type="integer">1</item>
</resources>

然后在我的布局文件中声明方向,如下所示:

代码语言:javascript
复制
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="@integer/linearlayoutOrientation">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25978511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档