首页 > 其他 > 详细

react-native屏幕适配

时间:2020-02-28 10:39:43      阅读:597      评论:0      收藏:0      [点我收藏+]

写一个屏幕适配类文件AdapterUtil.js,这样避免每次进行单位换算

"use strict"

import {Dimensions, StatusBar, Platform, PixelRatio} from react-native

//UI设计图的宽度
const designWidth = 750
//UI设计图的高度
const designHeight = 1334

//手机屏幕的宽度
export const width = Dimensions.get(window).width;
//手机屏幕的高度
export const height = Dimensions.get(window).height;
//计算手机屏幕宽度对应设计图宽度的单位宽度
export const unitWidth = width / designWidth
//计算手机屏幕高度对应设计图高度的单位高度
export const unitHeight = height / designHeight

export const statusBarHeight = getStatusBarHeight();
export const safeAreaViewHeight = isIphoneX() ? 34 : 0
//标题栏的高度
export const titleHeight = unitWidth * 100 + statusBarHeight;

//字体缩放比例,一般情况下不用考虑。
// 当应用中的字体需要根据手机设置中字体大小改变的话需要用到缩放比例
export const fontscale = PixelRatio.getFontScale()

/**
 * 判断是否为iphoneX
 * @returns {boolean}
 */
export function isIphoneX() {
    const X_WIDTH = 375;
    const X_HEIGHT = 812;
    return Platform.OS == ios && (height == X_HEIGHT && width == X_WIDTH)
}

//状态栏的高度
export function getStatusBarHeight() {
    if (Platform.OS == android) return StatusBar.currentHeight;
    if (isIphoneX()) {
        return 44
    }
    return 20
}

 

使用方法 ,直接按照UI图的 标注尺寸*unitWidth

import  React,{Component} from react
import {
  View,
  StyleSheet,
  Text
} from react-native
import {unitWidth, width}"../../utils/AdapterUtil";

export default class Demo extends Component {

  render() {
        const {backgroundColor, titleColor} = this.props
        return (
            <View style={styles.view}>
                    <View  style={styles.view2}>
            </View>
        )
  }

}

const styles= StyleSheet.create({
  view:{
      flex:1,
       alignItems: center, 
  },
  view2:{
      width:unitWidth*375,
      height:unitWidth*375,
      backgroundColor:red
  }
})

 

 

react-native屏幕适配

原文:https://www.cnblogs.com/plBlog/p/12375833.html

(0)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!