为了账号安全,请及时绑定邮箱和手机立即绑定

滚动到 material-ui 中的选定列表项

滚动到 material-ui 中的选定列表项

回首忆惘然 2021-11-04 10:50:02
我有一个列表,使用 material-ui 构建。里面有很多项目,所以滚动条是可见的。我想做的是滚动到所选项目。对如何实现这一点有任何想法吗?单击项目列表后应如下所示(所选项目位于中心):
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

我知道这里有一个可接受的答案,但我认为使用

<ListItem autoFocus={true}/>

会将该列表项滚动到视图中。将列表项设置为选中的相同逻辑也可用于设置autoFocus属性。


查看完整回答
反对 回复 2021-11-04
?
不负相思意

TA贡献1777条经验 获得超10个赞

保持对List的引用,然后单击ListItem,根据以下内容计算需要滚动的量:


列表项高度

所选项目的索引

可见列表项的数量。


const scrollableListRef = React.createRef();


function Row(props) {

  const { index, style } = props;


  const placeSelectedItemInTheMiddle = (index) => {

   const LIST_ITEM_HEIGHT = 46;

   const NUM_OF_VISIBLE_LIST_ITEMS = 9;


   const amountToScroll = LIST_ITEM_HEIGHT * (index - (NUM_OF_VISIBLE_LIST_ITEMS / 2) + 1) ;

   scrollableListRef.current.scrollTo(amountToScroll, 0);

  }


  return (

    <ListItem button style={style} key={index} 

    onClick={() => {placeSelectedItemInTheMiddle(index)}}>

      <ListItemText primary={`Item ${index + 1}`} />

    </ListItem>

  );

}


查看完整回答
反对 回复 2021-11-04
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信