我已经开发了几个月的应用程序,而且我已经阅读过使用layout-small
,layout-large
,layout-xlarge
等来支持多种屏幕分辨率{{{ 1}}在deprecated
开始(如果我错了,请纠正我)。因此,我仍在使用多个Android 3.0
目录,但在设计应用程序时需要做很多工作。
我的问题是:
有没有办法设计layout
一次支持多个屏幕,而不使用多个layout
个文件?
不推荐使用layout-size.xml
目录时的替代解决方案是什么?
答案 0 :(得分:1)
您可以使用尺寸。基本上,你会有同样的事情,有多个目录,但对于values
目录,因此values
,values-sw600dp
,values-sw600dp-land
等。
在这些内容中,您可以拥有dimens.xml
,其中包含以下内容:
<!-- In values/dimens.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="my_specific_dimension">150dp</dimen>
//More items...
</resources>
<!-- In values/dimens.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="my_specific_dimension">150dp</dimen>
//More items...
</resources>
现在,您可以在单个布局文件中使用@dimen/my_specific_dimension
,例如宽度或高度,并且就多个布局情况而言,它将使用基于屏幕类别的正确尺寸。< / p>
仅当布局基本相同且尺寸不同时才有效。该解决方案几乎没有定制。如果要使用不同的布局,则仍需编写多个布局文件。我认为x-large
等的弃用是在他们引入layout-sw600dp
,layout-land
,layout-sw600dp-land
之后。查看how to declare different layout for different sizes的文档。它解释了如何使用sw<N>dp
限定符。
答案 1 :(得分:0)
不幸的是,没有支持多个屏幕的标准布局。 例如,普通布局可以显示几英寸,因此可以是其中一些更大的高度或宽度。但是,它应该为每个屏幕定义唯一的布局。