zoukankan      html  css  js  c++  java
  • Taro 3.x 小程序导航栏高度等精确数据的hooks

    hooks代码如下,useNavInfo.tsx

    import React, {useState, useEffect} from 'react'
    import Taro from '@tarojs/taro'
    
    interface INavInfo {
      statusBarHeight: number
      titleBarHeight: number
      titelBarWidth: number
      appHeaderHeight: number
      marginSides: number
      capsuleWidth: number
      capsuleHeight:number
      capsuleLeft: number
      contentHeight: number
      screenHeight: number
      windowHeight: number
    }
    
    function useNavInfo(): INavInfo {
      const [navInfo, setNavInfo] = useState({
        statusBarHeight: 0,
        titleBarHeight: 0,
        titelBarWidth: 0,
        appHeaderHeight: 0,
        marginSides: 0,
        capsuleWidth: 0,
        capsuleHeight: 0,
        capsuleLeft: 0,
        contentHeight: 0,
        screenHeight: 0,
        windowHeight: 0,
      })
    
      useEffect(() => {
        console.log('sssss', Taro.getSystemInfoSync())
        const { statusBarHeight, screenWidth, screenHeight, windowHeight } = Taro.getSystemInfoSync()
        // 获取胶囊信息
        const { width, height, left, top, right } = Taro.getMenuButtonBoundingClientRect()
        // 计算标题栏高度
        const titleBarHeight = height + (top - statusBarHeight) * 2
        // 计算导航栏高度
        const appHeaderHeight = statusBarHeight + titleBarHeight
        //边距,两边的
        const marginSides = screenWidth - right
        //标题宽度
        const titelBarWidth = screenWidth - width - marginSides * 3
        //去掉导航栏,屏幕剩余的高度
        const contentHeight = screenHeight - appHeaderHeight
    
        setNavInfo({
          statusBarHeight: statusBarHeight, //状态栏高度
          titleBarHeight: titleBarHeight,  //标题栏高度
          titelBarWidth: titelBarWidth,  //标题栏宽度
          appHeaderHeight: appHeaderHeight, //整个导航栏高度
          marginSides: marginSides, //侧边距
          capsuleWidth: width, //胶囊宽度
          capsuleHeight: height, //胶囊高度
          capsuleLeft: left,
          contentHeight: contentHeight,
          screenHeight: screenHeight,
          windowHeight: windowHeight,
        })
      }, [])
      
      return navInfo
    }
    
    
    export default useNavInfo

    使用:

    import useNavInfo from '../hooks/useNavInfo.tsx'
    
    function somePage(){
        const {appHeaderHeight} = useNavInfo()
    }

  • 相关阅读:
    ethtool 命令输出的注意点--网卡参数
    centos7.2+zabbix3.2+sedmail邮件告警
    vscode monokai
    SQL SERVER 常用命令
    数据库问题6-將系統資料表對應至系統檢視
    数据库问题5-SYS.SYSPROCESSES使用和查找死锁
    select * from sys.sysprocesses
    【SQL Server学习笔记】事务、锁定、阻塞、死锁 sys.sysprocesses
    使用DMV调优性能 --Burgess_Liu
    sql server线程等待信息
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/13519232.html
Copyright © 2011-2022 走看看