RN 获取组件的宽度和高度

https://www.cnblogs.com/zhiyingzhou/p/7471212.html

https://blog.csdn.net/calvin_zhou/article/details/78415524

通过获取灰色 bar 的宽度,算橙色 bar 的宽度(右边数字其实应该是  3/4) 

import React, { Component } from 'react';
import { View, Text, StyleSheet } from 'react-native';

export default class JinDuTiao extends Component {

    constructor(props) {
        super(props);
        this.state = {}
    }

  
  //获取底层灰色bar的宽度 _onLayout(event) { let { width }
= event.nativeEvent.layout; this.setState({ barWidth: width }) } render() { return ( <View style={styles.barBox}> <View style={{ flex: 4 }}> <View> <View style={styles.bar} onLayout={(e) => { this._onLayout(e) }} /> <View style={[styles.bar, { backgroundColor: "#f8b62b", position: "absolute", width: this.state.barWidth * (3 / 4) }]} /> </View> </View> <View style={{ flex: 1 }}> <View style={styles.classTimeBox}> <Text>3/4</Text> </View> </View> </View> ) } } const styles = StyleSheet.create({ classTimeBox: { flexDirection: "row", alignSelf: 'flex-end', alignItems: 'flex-end' }, barBox: { marginTop: 9, flexDirection: "row", alignItems: 'center', }, bar: { paddingRight: 10, height: 6, borderRadius: 3, backgroundColor: '#eeeeee', zIndex: 1, }, });

 

转载于:https://www.cnblogs.com/gemeiyi/p/9854745.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值