App Bar 应用栏
应用栏组件展示了与当前屏幕息息相关的信息和操作。
而顶部应用栏(App Bar)则提供与当前屏幕相关的内容和操作。 该组件常用于展示品牌、展示标题、提供导航和一些可操作的内容。
它既可以用作于转换为上下文相关的操作栏,又可以直接充当导航栏。
<AppBar position="static">
  <Toolbar>
    <IconButton
      edge="start"
      className={classes.menuButton}
      color="inherit"
      aria-label="menu"
    >
      <MenuIcon />
    </IconButton>
    <Typography variant="h6" className={classes.title} component="div">
      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" component="div">
      Photos
    </Typography>
  </Toolbar>
</AppBar>固定的位置
当渲染一个固定位置的应用栏时,元素的尺寸不会影响页面的其余内容。 这可能导致部分内容会被挡在应用程序栏后面,而无法可见。 下面是3种可能的解决方案:
- 使用 position =“ sticky”代替 fixed。 ⚠️ sticky 不支持 IE11。
- 可以渲染第二个 <Toolbar />组件:
function App() {
  return (
    <React.Fragment>
      <AppBar position="fixed">
        <Toolbar>{/* content */}</Toolbar>
      </AppBar>
      <Toolbar />
    </React.Fragment>
  );
}- 也可以用 theme.mixins.toolbar的 CSS:
const useStyles = makeStyles((theme) => ({
  offset: theme.mixins.toolbar,
}));
function App() {
  const classes = useStyles();
  return (
    <React.Fragment>
      <AppBar position="fixed">
        <Toolbar>{/* 内容 */}</Toolbar>
      </AppBar>
      <div className={classes.offset} />
    </React.Fragment>
  );
}Scrolling 滚动
您可以使用 useScrollTrigger() 这个 hook 来相应用户触发的滚动操作。
隐藏应用栏
向下滚动会隐藏应用栏,这样一来会留有更多的空间进行阅读。
useScrollTrigger([options]) => trigger
参数
- options(Object [optional]):- options.disableHysteresis(Boolean [optional]):默认值为- false。 禁用迟滞的效果。 在决定- trigger的值时会忽略在滚动的方向。
- options.target(Node [optional]):默认值是- window。
- options.threshold(Number [optional]):默认值是- 100。 严格来说,当垂直滚动超过(但不包括)此阈值时,请更改- trigger的值。
 
返回结果
trigger: 此滚动的位置符合要求吗?
例子
import useScrollTrigger from '@material-ui/core/useScrollTrigger';
function HideOnScroll(props) {
  const trigger = useScrollTrigger();
  return (
    <Slide in={!trigger}>
      <div>你好</div>
    </Slide>
  );
}