在 Material UI 中,我想使用:
List
和 ListItem
,但希望它们横向显示。有什么最好的方法吗?List
和 ListItem
,但希望它们横向显示。有什么最好的方法吗?到目前为止,我已经做了:
const flexContainer = {
display: 'flex',
flexDirection: 'row',
padding: 0,
};
return (
<List style={flexContainer}>
<ListItem
primaryText="foo1"
secondaryText="bar1"/>
<ListItem
primaryText="foo2"
secondaryText="bar2"/>
</List>
);
这个方法有效。寻求更好的答案/意见。 是否应该内置?
Stack
和direction
解决方案几乎肯定是您要寻找的。我会尝试将其标记为正确答案! - DavidStack
以垂直或水平方向显示一系列事物。它在内部使用flexbox,因此direction
属性映射到CSS中的flex-direction
。<Stack direction="row" spacing={2}>
<Item>Item 1</Item>
<Item>Item 2</Item>
<Item>Item 3</Item>
</Stack>
如果您正在使用 List
:
<List component={Stack} direction="row">
我试过这些方法都没用,所以我带来了我猜是2021版本的:
<List style={{ display: 'flex', flexDirection: 'row', padding: 0 }}>
<ListItem button>hehe</ListItem>
<ListItem button>hehe1</ListItem>
</List>
玩耍一段时间后
.list-horizontal-display > div {
display: inline-block;
}
<List className="list-horizontal-display" >
<ListItem leftAvatar={<Avatar icon={this.props.icon}/>}></ListItem>
<ListItem leftAvatar={<Avatar icon={this.props.icon}/>}><ListItem>
</List
好的,您的方法可行。我的问题是当您想在移动设备上查看时,flex方向需要更改为列。
如果使用display: inline-block
会更好,但ListItem组件将为每个项目添加一个div包装器。
如果ListItem实际上使用containerElement作为顶级包装器而不是div元素,那么会更好。