我有一个XML布局,它在横向和纵向方向上工作得很好,但有一个例外- LinearLayout中的两个按钮需要水平放置在横向,垂直放置在纵向设备方向。
我想知道是否有一些简单的方法可以只定义一个动态变量或字符串放在XML布局文件中,而不必在layout和layout-land文件夹中创建两个完全相同的副本。
发布于 2014-09-23 22:34:47
我最终通过编程完成了这项工作:
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// landscape
linearlayout.setOrientation(LinearLayout.HORIZONTAL);
} else {
// portrait
linearlayout.setOrientation(LinearLayout.VERTICAL);
}发布于 2020-09-06 23:41:56
方向是引擎盖下的枚举,0表示水平,1表示垂直。我所做的是在res/values/integer.xml中放置一个默认的景观条目为0,然后在res/values-port/integer.xml中放置相同的条目,但是值为1。
所以我有:
/res/values/Integrger.xml
<resources>
<item name="linearlayoutOrientation" type="integer">0</item>
</resources>/res/values-port/intger.xml
<resources>
<item name="linearlayoutOrientation" type="integer">1</item>
</resources>然后在我的布局文件中声明方向,如下所示:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="@integer/linearlayoutOrientation">https://stackoverflow.com/questions/25978511
复制相似问题