使 material UI 抽屉保持相同大小,而不是在内容大小更改时调整大小
Make material UI drawer stay the same size, instead of resizing when content size changes
我正在使用带抽屉的 Material UI。
抽屉里有一组可折叠列表。当我展开列表时,列表文本项可能会很长,并且抽屉会跳出更宽的范围。
我希望抽屉的宽度是 window 大小的 30%,但是当我尝试在抽屉上设置 类 时,root 和模态类名似乎都不能保持抽屉宽度地方。
这是抽屉代码:
<Drawer classes={drawerClasses} open={showStandardDrawer} anchor={"right"} onClose={closeDrawer}>
{Array.from(items).map((item, index) => {
return (
<List
key={`list-${index}`}
component="div"
aria-labelledby="nested-list-subheader"
subheader={
<ListSubheader component="div" id="nested-list-subheader">
{item.title}
</ListSubheader>
}
className={classes.root}
>
{ item.elements.map((el, index) => {
return (
<React.Fragment key={index}>
<ListItem key={index} button onClick={() => handleExpand(index)}>
<ListItemText primary={el.name} />
{open[index] ? <ExpandLess /> : <ExpandMore />}
</ListItem>
<Collapse in={open[index]} timeout="auto" unmountOnExit>
{ el.descriptions.map((description, index) => {
return (
<List key={`l-${index}`} component="div" disablePadding>
<ListItem button className={classes.nested} >
<ListItemIcon>
<StarBorder />
</ListItemIcon>
<ListItemText primary={description} primaryTypographyProps={{noWrap:true, width:'200px'} } />
</ListItem>
</List>
)})
}
</Collapse>
</React.Fragment>
)
})}
</List>
)
})}
</Drawer>
这些是应用于抽屉 ('drawerClasses') 的 类:
{
root: {
maxWidth: '200px',
minWidth: '50%',
width: '50%',
overflow: 'hidden'
},
modal: {
maxWidth: '50%',
minWidth: '50%',
width: '50%'
}
}
这些不是我一定想要的样式,我只是想看看是否可以让 Drawer 调整自身大小而不是围绕其子项调整大小。
而不是 modal
,使用 paper
class。抽屉中的 Paper
元素是主要的可见容器。 root
和 modal
class 应用于包装元素,这些元素的宽度不一定会影响纸张宽度。
这是 Permanent drawer demo 的代码摘录:
const useStyles = makeStyles(theme => ({
drawer: {
width: drawerWidth,
flexShrink: 0,
},
drawerPaper: {
width: drawerWidth,
},
}));
...
<Drawer
className={classes.drawer}
variant="permanent"
classes={{
paper: classes.drawerPaper,
}}
anchor="left"
>
我正在使用带抽屉的 Material UI。
抽屉里有一组可折叠列表。当我展开列表时,列表文本项可能会很长,并且抽屉会跳出更宽的范围。 我希望抽屉的宽度是 window 大小的 30%,但是当我尝试在抽屉上设置 类 时,root 和模态类名似乎都不能保持抽屉宽度地方。
这是抽屉代码:
<Drawer classes={drawerClasses} open={showStandardDrawer} anchor={"right"} onClose={closeDrawer}>
{Array.from(items).map((item, index) => {
return (
<List
key={`list-${index}`}
component="div"
aria-labelledby="nested-list-subheader"
subheader={
<ListSubheader component="div" id="nested-list-subheader">
{item.title}
</ListSubheader>
}
className={classes.root}
>
{ item.elements.map((el, index) => {
return (
<React.Fragment key={index}>
<ListItem key={index} button onClick={() => handleExpand(index)}>
<ListItemText primary={el.name} />
{open[index] ? <ExpandLess /> : <ExpandMore />}
</ListItem>
<Collapse in={open[index]} timeout="auto" unmountOnExit>
{ el.descriptions.map((description, index) => {
return (
<List key={`l-${index}`} component="div" disablePadding>
<ListItem button className={classes.nested} >
<ListItemIcon>
<StarBorder />
</ListItemIcon>
<ListItemText primary={description} primaryTypographyProps={{noWrap:true, width:'200px'} } />
</ListItem>
</List>
)})
}
</Collapse>
</React.Fragment>
)
})}
</List>
)
})}
</Drawer>
这些是应用于抽屉 ('drawerClasses') 的 类:
{
root: {
maxWidth: '200px',
minWidth: '50%',
width: '50%',
overflow: 'hidden'
},
modal: {
maxWidth: '50%',
minWidth: '50%',
width: '50%'
}
}
这些不是我一定想要的样式,我只是想看看是否可以让 Drawer 调整自身大小而不是围绕其子项调整大小。
而不是 modal
,使用 paper
class。抽屉中的 Paper
元素是主要的可见容器。 root
和 modal
class 应用于包装元素,这些元素的宽度不一定会影响纸张宽度。
这是 Permanent drawer demo 的代码摘录:
const useStyles = makeStyles(theme => ({
drawer: {
width: drawerWidth,
flexShrink: 0,
},
drawerPaper: {
width: drawerWidth,
},
}));
...
<Drawer
className={classes.drawer}
variant="permanent"
classes={{
paper: classes.drawerPaper,
}}
anchor="left"
>