List 列表
列表是对文本或图像的连续、垂直的索引。
列表能够承载一组连续的文本或图像。 它们由包含主要和补充操作的项子集组成,而这些操作由图标和文本表示。
上一个样例的最后一个子集展示了如何渲染一个链接:
<ListItemButton component="a" href="#simple-list">
<ListItemText primary="Spam" />
</ListItemButton>
You can find a demo with React Router following this section of the documentation.
嵌套列表
- Photos
Jan 9, 2014
- Work
Jan 7, 2014
- Vacation
July 20, 2014
- Single-line item
- Single-line item
- Single-line item
- Single-line item
- Single-line item
- Single-line item
- Single-line item
- Single-line item
- Single-line item
- Single-line item
- Single-line item
- Single-line item
对齐列表项
When displaying three lines or more, the avatar is not aligned at the top. When displaying three lines or more, the avatar is not aligned at the top. You should set the alignItems="flex-start"
prop to align the avatar at the top, following the Material Design guidelines:
- Brunch this weekend?
Ali Connors — I'll be in your neighborhood doing errands this…
- Summer BBQ
to Scott, Alex, Jennifer — Wish I could come, but I'm out of town this…
- Oui Oui
Sandra Adams — Do you have Paris recommendations? Have you ever…
- Line item 1
- Line item 2
- Line item 3
- Line item 4
该复选框执行了列表项的辅助操作,并且是一个单独的目标。
- Line item 1
- Line item 2
- Line item 3
- Line item 4
- Settings
- Wi-Fi
- Bluetooth
- I'm sticky 0
- Item 0
- Item 1
- Item 2
- I'm sticky 1
- Item 0
- Item 1
- Item 2
- I'm sticky 2
- Item 0
- Item 1
- Item 2
- I'm sticky 3
- Item 0
- Item 1
- Item 2
- I'm sticky 4
- Item 0
- Item 1
- Item 2
- Chelsea Otakan
- Eric Hoffman
- Line item 1
- Line item 2
- Line item 3
<List sx={{ width: '100%', maxWidth: 360, bgcolor: 'background.paper' }}>
{[1, 2, 3].map((value) => (
<ListItem
key={value}
disableGutters
secondaryAction={
<IconButton aria-label="comment">
<CommentIcon />
</IconButton>
}
>
<ListItemText primary={`Line item ${value}`} />
</ListItem>
))}
</List>
大型列表渲染
在下面的示例中,我们演示了如何将 react-window 与 List
组件一起使用。 它渲染了 200 多行,并且可以轻松的延展到更多行。 可视化优化了整体的性能。
<FixedSizeList
height={400}
width={360}
itemSize={46}
itemCount={200}
overscanCount={5}
>
{renderRow}
</FixedSizeList>
我们鼓励尽可能使用 react-window。 如果这个库不包括你的用例,你应该考虑使用 react-virtualized,然后使用 react-virtuoso等替代品。
Customized List
你可以参考以下一些例子来自定义组件。 You can learn more about this in the overrides documentation page.
🎨 If you are looking for inspiration, you can check MUI Treasury's customization examples.