我有两个布局文件夹,layout-sw600dp
用于7英寸平板电脑(1024X600)mdpi,另一个用名称layout-xlarge
用于12英寸平板电脑(1280X800)mdpi。问题是,当我在7“模拟器中运行我的项目时,它会从layout-xlarge
文件夹而不是layout-sw600dp
中找到布局。我还尝试通过更改不同站点中提供的文件夹名称来尝试其他解决方案没有为我的问题找到合适的解决方案。请为我提供一个解决此问题的工作方案。提前致谢。
答案 0 :(得分:10)
这里需要记住的是,使用swXXXdp
资源标识符仅适用于运行Android 3.2+的设备(即添加时)。较旧的设备无法识别,因此不会使用这些标识符,因此如果您打算支持,则必须使用旧标识符(small
,normal
,large
,xlarge
)运行Android的平板电脑< 3.2。截至目前,只有0.3%的平板电脑运行Android 3.1(API 12),因此可以安全地致电不完全支持它们 - http://developer.android.com/about/dashboards/index.html。
有一篇很好的博客解释了如何使用这些新的资源标识符。 http://android-developers.blogspot.com/2011/07/new-tools-for-managing-screen-sizes.html
对于您的特定问题,假设您仅为平板电脑布局支持Android 3.2+,请将layout-xlarge
文件夹更改为layout-sw720dp
以支持10“+平板电脑,并将layout-sw600dp
更改为支持7“平板电脑布局。
答案 1 :(得分:1)
布局文件夹的选项很多。您不仅可以指定layout-land/
或layout-large
之类的内容,还可以指定它们的混合,例如layout-large-land/
或layout-xhdpi-land/
。您可以看到所有限定符here at Android Developers。
对于您的问题,请检查平板电脑仿真器的尺寸是否具有正确的屏幕分辨率。您可以在创建AVD时指定特定的屏幕分辨率。此外,在指定layout-sw600dp/
时,它会检查当前运行的活动的实际可用宽度的宽度。例如,在运行4.2的平板电脑上,屏幕底部的~50dp用于系统栏,如果不是全屏,则一些用于顶部操作栏。这会将实际dp降低到600以下。