当前位置: 首页 > news >正文

自己做cdk兑换码网站哪些网站可以赚钱

自己做cdk兑换码网站,哪些网站可以赚钱,小百姓这个网站谁做的,红酒网站建设策划书问题描述: 在React Native中,我们可以使用measureInWindow的方式去获取一个View在屏幕中的位置信息: 下面这个Demo中,我们写了一个页面HomePage和一个列表项组件ListItemA,我们期望每过5s监测一次列表中每一项在屏幕中…

问题描述:
在React Native中,我们可以使用measureInWindow的方式去获取一个View在屏幕中的位置信息:
下面这个Demo中,我们写了一个页面HomePage和一个列表项组件ListItemA,我们期望每过5s监测一次列表中每一项在屏幕中的位置信息。
于是,我们使用useRef得到了一个ref对象,并且将ref指向ListItemA最外层的View。之后,我们每5s调用ref.current的measureInWindow方法以获取列表项在屏幕中的位置信息。
HomePage.tsx:

import React, { type FC, memo } from 'react';
import { StyleSheet, View } from 'react-native';
import { FlatList } from 'react-native-gesture-handler';import ListItemA from './ListItem';const styles = StyleSheet.create({container: {height: '100%',backgroundColor: 'red',alignItems: 'center',justifyContent: 'center',},text: {fontSize: 32,color: '#f55',},
});
const HomePage: FC<{}> = () => {const data = ['商品1', '商品2', '商品3', '商品4', '商品5'];return (<View style={styles.container}><FlatListstyle={{width: '100%',paddingHorizontal: 12,}}data={data}renderItem={({ item, index }) => {return <ListItemA index={index} title={item} />;}}/></View>);
};
export default memo(HomePage);

ListItemA.tsx:

import React, { useEffect, useRef } from 'react';
import { StyleSheet, Text, View } from 'react-native';interface IProps {index: number;title: string;
}
const styles = StyleSheet.create({container: {width: '100%',height: 40,borderRadius: 12,backgroundColor: '#ff00ff',marginTop: 12,flexDirection: 'column',justifyContent: 'center',},text: {fontSize: 14,color: '#000000',},
});
const ListItemA = (props: IProps) => {const ref = useRef<View>(null);useEffect(() => {// 每5s获取一次const timer = setInterval(() => {ref.current?.measureInWindow((x: number, y: number, width: number, height: number) => {console.log(props.index, '=>', x, y, width, height);});}, 5000);return () => {clearInterval(timer);};}, []);return (<Viewref={ref}style={{width: '100%',flexDirection: 'row',}}><View style={styles.container}><Text style={styles.text}>{`item${props.index}: ${props.title}`}</Text></View></View>);
};
export default ListItemA;

在Android手机上运行后,发现控制台log信息如下:
在这里插入图片描述

获取到的布局信息(屏幕中x坐标、屏幕中y坐标、View的宽度,View的高度)均为0。在我打开android的通知栏,再收起,打印信息甚至又发生了改变(这个数据如何得出暂时未知):
在这里插入图片描述
可以发现问题:

  1. 最开始无法获取到View的布局信息
  2. 会获取到未知错误信息(原因不详)
  3. 所有的列表项获取到的布局信息是一致的,每个列表项在屏幕中的坐标必然不同,此现象显然不符合预期

问题解决:
React Native针对android会有渲染优化,默认开启。
collapsable属性
在这里插入图片描述
我们ListItemA中的最外层View只是用来包裹了内层的View,没有其他的作用。即使在代码中移除了它,展示样式看起来也不会有变化。如果想要使用最外层View获取到布局信息,可以禁用优化,添加collapsable={false}以解决:
修改部分如下:

	<Viewref={ref}collapsable={false}style={{width: '100%',flexDirection: 'row',}}><View style={styles.container}><Text style={styles.text}>{`item${props.index}: ${props.title}`}</Text></View></View>

这时候再看打印,能够正确获取到每个列表item的布局信息了:
在这里插入图片描述

http://www.15wanjia.com/news/185644.html

相关文章:

  • 做模型网站赚钱么晋州网站建设哪家好
  • 有没有教做化学药品的网站杭州网站建设公司排行
  • 北京网站建设技术托管手机网站建设推荐
  • 新类型 网站怎么建设一个开源平台网站
  • 房地产项目网站建设网站优化建设河南
  • 沈阳专业制作网站专门做进口产品的网站6
  • 新七建设集团有限公司网站如何做一个网页
  • h5类型的网站是怎么做的项目网专栏
  • 延安网站建设网站制作公司深圳
  • 网站外链的建设网站开发与维护是干什么的
  • 国外有哪些设计网站有哪些问题建网站主机
  • 购物网站页面布局深圳网站开发搜行者seo
  • 鞍山手机网站建设网站怎么加留言
  • 代码交易网站公司要搭建网站
  • 哪些经营范围是包含网站开发的海口网吧
  • 德州做网站dzqifan互动营销的案例有哪些
  • 做网站类的网站网站主页没有关键词
  • dw如何用表格做网站永川做网站的
  • 做网站图标的软件wordpress lt
  • 成都手机wap网站制作网络规划设计师一本通
  • 上海 网站公司公司网站做一下多少钱
  • 成都 html5网站中国建盏品牌形象设计大赛公示
  • 怎么制作手机网页网站优化seo教程
  • 电商网站架构酒店网站建设趋势
  • 网站建设属于哪个经营范围绍兴金圣建设有限公司网站
  • 外贸企业网站源码app企业微信下载
  • 做亚马逊产品测评的网站山西住房建设部网站
  • 做网站技术员wap网站 什么意思
  • 茂名建设局网站wordpress修改站点名
  • 上海城隍庙几点关门如何做自己网站的seo