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

React中修改Material UI底部Swipeable Drawer宽度的方法

解决Material UI底部锚定Swipeable Drawer宽度问题

要让底部抽屉不占满整个屏幕宽度,核心是修改抽屉的Paper组件样式(这是抽屉的实际容器,默认宽度为100%),以下是两种可行方案:

方案一:通过sx直接覆盖Paper类样式

import SwipeableDrawer from '@mui/material/SwipeableDrawer';

<SwipeableDrawer
  anchor="bottom"
  open={open}
  onClose={handleClose}
  onOpen={handleOpen}
  sx={{
    '& .MuiDrawer-paper': {
      width: '80%', // 自定义宽度,可设百分比、固定值如'500px'
      maxWidth: '90vw', // 移动端适配,避免宽度溢出屏幕
      margin: '0 auto', // 让抽屉水平居中
      borderTopLeftRadius: '16px', // 可选:添加顶部圆角优化视觉
      borderTopRightRadius: '16px'
    }
  }}
>
  {/* 抽屉内部内容 */}
</SwipeableDrawer>

方案二:通过PaperProps传递样式(更直观)

import SwipeableDrawer from '@mui/material/SwipeableDrawer';

<SwipeableDrawer
  anchor="bottom"
  open={open}
  onClose={handleClose}
  onOpen={handleOpen}
  PaperProps={{
    sx: {
      width: { xs: '95%', sm: '80%', md: '60%' }, // 响应式宽度,适配不同设备
      margin: '0 auto',
      borderTopLeftRadius: '16px',
      borderTopRightRadius: '16px'
    }
  }}
>
  {/* 抽屉内部内容 */}
</SwipeableDrawer>

说明

你之前修改顶部区域宽度无效,是因为顶部仅为抽屉的触发/拖动区域,实际承载内容的容器是Paper组件,必须针对它调整宽度才能生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:10:46