Barra de Aplicativos
A barra de aplicativos exibe informações e ações relacionadas à tela atual.
A barra de aplicativos superior provê conteúdo e ações relacionados à tela atual. Ela é utilizada para a identidade visual, títulos de tela, navegação, e ações.
Ela pode se transformar em uma barra de ações contextual ou ser utilizada como uma barra de navegação.
Barra de Aplicativos Simples
<AppBar position="static">
<Toolbar>
<IconButton edge="start" className={classes.menuButton} color="inherit" aria-label="menu">
<MenuIcon />
</IconButton>
<Typography variant="h6" className={classes.title}>
News
</Typography>
<Button color="inherit">Login</Button>
</Toolbar>
</AppBar>
<AppBar position="static">
<Toolbar variant="dense">
<IconButton edge="start" className={classes.menuButton} color="inherit" aria-label="menu">
<MenuIcon />
</IconButton>
<Typography variant="h6" color="inherit">
Photos
</Typography>
</Toolbar>
</AppBar>
Posicionamento fixo
Quando você renderiza a barra de aplicativos com um posicionamento fixo, a dimensão do elemento não afeta o resto da página. Isso pode fazer com que parte do seu conteúdo pareça estar invisível, atrás da barra de aplicativos. Aqui estão 3 soluções possíveis:
- Você pode usar
position="sticky"
ao invés de fixed. ⚠️ sticky não é suportado pelo IE 11. - Você pode renderizar um segundo componente
<Toolbar />
:
function App() {
return (
<React.Fragment>
<AppBar position="fixed">
<Toolbar>{/* conteúdo */}</Toolbar>
</AppBar>
<Toolbar />
</React.Fragment>
);
}
- Você pode usar o CSS
theme.mixins.toolbar
:
const useStyles = makeStyles(theme => ({
offset: theme.mixins.toolbar,
}))
function App() {
const classes = useStyles();
return (
<React.Fragment>
<AppBar position="fixed">
<Toolbar>{/* conteúdo */}</Toolbar>
</AppBar>
<div className={classes.offset} />
</React.Fragment>
)
};
Rolagem
Você pode usar o hook useScrollTrigger()
para responder às ações de rolagem do usuário.
Barra de aplicativos oculta
A barra de aplicativos ficará oculta ao rolar a página para baixo, deixando mais espaço de leitura.
Barra de aplicativos elevada
A barra de aplicativos eleva-se na rolagem para comunicar que o usuário não está na parte superior da página.
Voltar ao topo
Um botão de ação flutuante aparece na rolagem para facilitar o retorno ao topo da página.
useScrollTrigger([options]) => trigger
Argumentos
options
(Object [opcional]):
options.disableHysteresis
(Boolean [opcional]): Padrãofalse
. Desabilita a histerese. Ignora a direção de rolagem ao determinar o valor detrigger
.options.target
(Node [opcional]): Padrãowindow
.options.threshold
(Number [opcional]): Padrão100
. Modifica o valor limite que aciona atrigger
quando a barra de rolagem vertical cruzar ou chegar a este limite.
Retornos
trigger
: A posição da tela bate com o critério estabelecido?
Exemplos
import useScrollTrigger from '@material-ui/core/useScrollTrigger';
function HideOnScroll(props) {
const trigger = useScrollTrigger();
return (
<Slide in={!trigger}>
<div>Hello</div>
</Slide>
);
}