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

Android横竖屏适配:不新增布局文件,用values配置RecyclerView的spanCount

当然可以实现!不用写两个布局文件,靠资源配置就能搞定

完全没问题,这正是Android资源系统的优势所在——通过不同配置的资源文件夹,就能轻松实现横竖屏的差异化配置,不用重复编写布局代码。下面是具体步骤:

1. 创建不同方向的整数资源文件

  • 首先在res/values目录下创建(或修改)integers.xml,定义竖屏时的列数:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="grid_span_count">3</integer>
</resources>
  • 然后创建res/values-land目录(land代表横屏配置),在里面同样创建integers.xml,定义横屏时的列数:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="grid_span_count">6</integer>
</resources>

2. 修改RecyclerView的布局代码

把原来布局中硬编码的app:spanCount="3"改成引用我们定义的资源:

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layoutManager="android.support.v7.widget.GridLayoutManager"
    app:spanCount="@integer/grid_span_count" />

原理说明

Android系统会根据当前屏幕的方向,自动加载对应配置文件夹下的资源。竖屏时加载values里的3,横屏时自动切换到values-land里的6,完全不用你手动写逻辑判断,布局文件也只需要一份。

如果之后需要调整列数,只需要修改对应资源文件里的数值就行,非常方便!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:12:52