首页 > 解决方案 > 以编程方式膨胀特定于屏幕的布局

问题描述

是否可以以编程方式膨胀screen-specific布局?

我有 2 个相同屏幕的布局,其中之一是sw600dp,对于我想使用的平板电脑横向,sw600dp但对于我想使用默认的平板电脑纵向layout,因为我的屏幕分成 2 个片段。

因为平板电脑很大,横向和纵向都大于 600dp。

标签: androidandroid-layoutandroid-fragments

解决方案


如果您知道屏幕尺寸,那么您可以从“使用布局别名” https://developer.android.com/training/multiscreen/screensizes中的示例中获取灵感 (滚动到“使用布局别名”部分)

为避免同一文件的重复,您可以使用别名文件。例如,您可以定义以下布局:

res/layout/main.xml            # single-pane layout
res/layout/main_twopanes.xml   # two-pane layout

基本上,不要将它们放在不同的布局文件夹中,只需将它们命名不同并将所有布局放在默认布局文件夹中即可。

对于您的情况,既然您想以编程方式进行操作,那么只需检查您的屏幕尺寸 > xxx 尺寸,膨胀更大的布局。

所以你最终可能会得到如下文件

res/layout/main_sw320.xml   
res/layout/main.xml       
res/layout/main_sw600.xml

推荐阅读