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

如何复刻Android Settings App UI分类布局?可行布局方案咨询

实现Android设置App风格的分类板块布局

LinearLayout可以实现吗?当然可以

如果你的分类板块是静态、数量不多的情况,用垂直LinearLayout嵌套就能搞定,核心思路是:

  • 外层用垂直LinearLayout,给每个板块之间留好间距
  • 每个分类板块作为独立的子容器(比如垂直LinearLayout或CardView),内部包含标题+条目列表
  • 给板块加圆角、边框、背景色,模拟设置App的卡片样式

举个实际的XML示例:

<!-- 外层容器 -->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp"
    android:gap="12dp">

    <!-- 第一个分类板块 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@drawable/setting_card_bg"
        android:padding="16dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="网络和互联网"
            android:textSize="18sp"
            android:textStyle="bold"/>

        <!-- 板块内的单个条目 -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="12dp"
            android:gravity="center_vertical"
            android:gap="12dp">

            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src="@drawable/ic_wifi"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="WLAN"/>
        </LinearLayout>

        <!-- 可以继续添加更多条目 -->
    </LinearLayout>

    <!-- 第二个分类板块,结构和第一个一致 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@drawable/setting_card_bg"
        android:padding="16dp">

        <TextView
            android:text="连接与共享"
            android:textSize="18sp"
            android:textStyle="bold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <!-- 内部条目... -->
    </LinearLayout>
</LinearLayout>

上面用到的卡片背景@drawable/setting_card_bg可以这么定义:

<!-- res/drawable/setting_card_bg.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@android:color/white"/>
    <corners android:radius="12dp"/>
    <stroke android:width="1dp" android:color="#E0E0E0"/>
</shape>

更适合动态场景的方案:RecyclerView

如果你的分类板块数量多、需要动态加载(比如从接口获取),或者想优化性能,优先用RecyclerView:

  • 把每个分类板块作为RecyclerView的一个Item
  • Item布局就是上面单个板块的结构
  • 通过Adapter绑定数据,实现视图复用,滚动流畅度更好

其他可选布局:ConstraintLayout

如果需要更灵活的布局调整(比如某个板块要和其他元素做特殊约束),ConstraintLayout也能实现,但静态板块的话,它的写法不如LinearLayout直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:16:13