You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用带sw320dp限定符的activity_main布局文件?

正确调用带限定符布局的方法

首先要纠正Android资源限定符的使用误区:

  • Android的资源限定符是加在资源文件夹名称后,不能加在布局文件名称里,你当前的文件命名方式不符合Android资源命名规范,会导致R文件无法生成对应ID。
  • 正确的文件夹结构应该按如下规则设置:
    • 默认布局文件夹:res/layout/ 下存放默认的activity_main.xml布局
    • 带sw320dp限定符的布局文件夹:新建res/layout-sw320dp/,在该文件夹下存放你要调用的灰色布局,文件名称同样为activity_main.xml,和默认布局的文件名完全一致即可。

调整完文件结构后,不需要在代码中额外加限定符,Android会自动根据当前设备的屏幕参数匹配对应限定符的资源,直接用常规方式加载布局即可:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

如果有特殊需求要在代码中手动强制加载sw320dp限定符对应的布局,可以通过调整Context配置实现:

// 构造带sw320dp限定符配置的Context
Configuration config = new Configuration(getResources().getConfiguration());
config.smallestScreenWidthDp = 320;
Context sw320Context = createConfigurationContext(config);
// 从定制化Context中获取对应布局资源
setContentView(sw320Context.getResources().getIdentifier("activity_main", "layout", getPackageName()));

注意:无特殊需求不建议手动强制指定资源匹配规则,系统自动匹配的逻辑已经覆盖绝大多数使用场景,手动修改配置可能引发其他资源加载异常。

内容的提问来源于stack exchange,提问作者user16219033

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:15:07