#material-ui
Вопрос:
У меня есть компонент, который открывает/закрывает таблицу пользовательского интерфейса материала. Я использую переключатель для открытия/закрытия этого компонента. Это в значительной степени работает именно так, как я хочу. У меня есть небольшая эстетическая проблема с размещением текста «Скрыть/Показать». Верхняя часть текста совпадает с горизонтальным центром элемента управления переключателем.
Вот код переключателя.
<FormControlLabel
className={classes.switch}
control={<Switch checked={show} onChange={handleChangeShow} />}
label={show ? "Hide" : "Show"}
/>
Обратите внимание, что метка «Показать/Скрыть» не совпадает с самим переключателем. Это слишком низко. Как я могу это исправить?
Вот функция создания стилей.
const useStyles = makeStyles((theme) => ({
root: {
paddingLeft: theme.spacing(2),
paddingRight: theme.spacing(1),
flexDirection: "column",
display: 'flex'
},
container: {
width: (props) => (props.show ? "inherit" : "0px"),
height: (props) => (props.show ? "inherit" : "0px")
},
switch: {
justifyContent: "flex-end",
alignItems: "flex-end"
},
}
Вот код оболочки:
return (
<div className={classes.root}>
<Typography>{title}</Typography>
<div className={classes.container}>
<Fade in={show}>
<Paper className={classes.paper}>{frames_view}</Paper>
</Fade>
</div>
<FormControlLabel
className={classes.switch}
control={<Switch checked={show} onChange={handleChangeShow} />}
label={show ? "Hide" : "Show"}
/>
</div>
Ответ №1:
Хорошо.. Похоже, это было решено путем упаковки в группу форм:
<FormGroup
className={classes.switch}
row
>
<FormControlLabel
control={<Switch checked={show} onChange={handleChangeShow} />}
label={show ? "Hide" : "Show"}
/>
</FormGroup>