reactjs ToggleButtonGroup材料UI -如何排列2 x 2 2行2列

yxyvkwin  于 2023-01-17  发布在  React
关注(0)|答案(1)|浏览(141)

如果在切换按钮中使用网格,则OnChange事件不起作用
使用Grid或Stack事件可以正常工作
如何排列2 x 2按钮
我在材料ui网站上看不到任何关于这个的例子
有人能帮帮忙吗

const [testTime, setTestTime] = useState<string | null>('1');

    const handleTestTime = (event: React.MouseEvent<HTMLElement>, newTime: string | null) => {
      console.log(newTime);
      setTestTime(newTime);    
    };

     <Box>
      <Typography variant="body2">
        Toggle Button
      </Typography>
      <ToggleButtonGroup 
        value={testTime}
        exclusive 
        onChange={handleTestTime}>
        <Grid container spacing={1}>
          <Grid item xs={6}>
            <ToggleButton value="earlymorning">
              <Stack direction={{ xs: 'column' }}>
                <Typography variant="body2">Early Morning</Typography>
              </Stack>
            </ToggleButton>
          </Grid>
          <Grid item xs={6}>
            <ToggleButton value="morning">
              <Stack direction={{ xs: 'column' }}>
                <Typography variant="body2">Morning</Typography>
              </Stack>
            </ToggleButton>
          </Grid>
          <Grid item xs={6}>
            <ToggleButton value="afternoon">
              <Stack direction={{ xs: 'column' }}>
                <Typography variant="body2">Afternoon</Typography>
              </Stack>
            </ToggleButton>
          </Grid>
          <Grid item xs={6}>
            <ToggleButton value="evening">
              <Stack direction={{ xs: 'column' }}>
                <Typography variant="body2">Evening</Typography>
              </Stack>
            </ToggleButton>
          </Grid>
        </Grid>
      </ToggleButtonGroup>
    </Box>
bweufnob

bweufnob1#

切换按钮不能换行。但是,您可以使用以下命令使其换行:

<ToggleButtonGroup
sx={{ flexWrap: "wrap"}}
...>

下面是一个例子:
https://codesandbox.io/s/happy-https-366fsv?file=/demo.tsx:775-798
但是,您会看到间距有点偏离,列中断处的项目边框也是如此。如果有人有一个聪明的方法来使它看起来也不错,我会很高兴的-

相关问题