reactnative 调用原生ui组件

reactnative 调用原生ui组件

在这里插入图片描述

![组件对应关系](https://img-blog.csdnimg.cn/direct/c4351ad7bd38411e9c13087f1059a4b0.png)

1.该样例已textView,介绍。

新建MyTextViewManager 文件,继承SimpleViewManager。import android.graphics.Color;
import android.widget.TextView;import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp;public class MyTextViewManager extends SimpleViewManager<TextView> {@Overridepublic String getName() {return "MyTextView";}@Overrideprotected TextView createViewInstance(ThemedReactContext reactContext) {TextView textView = new TextView(reactContext);return textView;}@ReactProp(name="text")public void setText(TextView view,String text){view.setText(text);}@ReactProp(name="textSize")public void setTextSize(TextView view,float fontSize){view.setTextSize(fontSize);}@ReactProp(name="textColor",defaultInt = Color.BLACK)public void setTextColor(TextView view,int textColor){view.setTextColor(textColor);}@ReactProp(name="isAlpha",defaultBoolean = false)public void setTextAlpha(TextView view,boolean isAlpha){if(isAlpha){view.setAlpha(0.5f);}else{}}
}

第二部 桥接文件

import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import com.gxl.express.apk.ui.CameraPreviewViewManager;
import com.gxl.express.apk.ui.MyCustomViewManager;
import com.gxl.express.apk.ui.MyTextViewManager;
import com.gxl.express.apk.ui.VideoViewManager;
import com.gxl.express.apk.ui.cameraViewManager;import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;public class TestReactPackage implements ReactPackage {@Overridepublic List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {List<NativeModule> modules = new ArrayList<>();modules.add(new OpenNativeModule(reactContext));return modules;}@Overridepublic List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
//        return Collections.emptyList();
//        return Arrays.<ViewManager>asList(new cameraViewManager(reactContext),new MyTextViewManager(),new CameraPreviewViewManager(),new VideoViewManager());return Arrays.<ViewManager>asList( new MyCustomViewManager(),new cameraViewManager(),new MyTextViewManager());}
}

第三步 将桥接文件引入

	@Overrideprotected List<ReactPackage> getPackages() {@SuppressWarnings("UnnecessaryLocalVariable")List<ReactPackage> packages = new PackageList(this).getPackages();// Packages that cannot be autolinked yet can be added manually here, for example:// packages.add(new MyReactNativePackage());
//            packages.add(new MainReactPackage());packages.add( new TestReactPackage());  // 将桥接文件引入return packages;}

第四步 在react native 项目中引入。

import React from 'react';
import { requireNativeComponent } from 'react-native';type Props = {text: String,textSize: Number,textColor:Number,isAlpha:Boolean
}const MyTextView = requireNativeComponent('MyTextView', MyCustomText, {});class MyCustomText extends React.PureComponent<Props> {render() {return <MyTextView {...this.props} />}
}export default MyCustomText;

第5走 引入组件使用

import MyCustomText from './../component/Mytext';<MyCustomTextstyle={{ width: 100, height: 100 }} text="00000"textSize={12}></MyCustomText>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年美国大学生数学建模竞赛F题思路分析

题目 非法野生动物贸易对环境造成了负面影响&#xff0c;并威胁全球生物多样性。据估计&#xff0c;其涉及高达265亿美元的年交易额&#xff0c;被认为是全球所有非法交易中的第四大。[1] 你需要开发一个基于数据驱动的5年项目&#xff0c;旨在显著减少非法野生动物贸易。你的…

2024美赛数学建模F题思路分析 - 减少非法野生动物贸易

1 赛题 问题F&#xff1a;减少非法野生动物贸易 非法的野生动物贸易会对我们的环境产生负面影响&#xff0c;并威胁到全球的生物多样性。据估计&#xff0c;它每年涉及高达265亿美元&#xff0c;被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目&#xff0c;…

2024年美赛F题Problem F Reducing Illegal Wildlife Trade减少非法野生动物贸易的完整思路代码分享

非法的野生动物贸易会对我们的环境产生负面影响&#xff0c;并威胁到全球的生物多样性。据估计&#xff0c;它每年涉及高达265亿美元&#xff0c;被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目&#xff0c;旨在显著减少非法野生动物贸易。你的目标是说服一个…

Leetcode2772. 使数组中的所有元素都等于零

Every day a Leetcode 题目来源&#xff1a;2772. 使数组中的所有元素都等于零 解法1&#xff1a;差分数组 令差分数组 diff[i] nums[i] - nums[i - 1]&#xff0c;特别地&#xff0c;diff[0] nums[0]&#xff0c;diff[n] -nums[n-1]。 可以发现&#xff0c;差分数组具…

用Audio2Face导出Unity面部动画

开始之前说句话&#xff0c;新年前最后一篇文章了 一定别轻易保存任何内容&#xff0c;尤其是程序员不要轻易Ctrl S 在A2F去往Unity的路上&#xff0c;还要经历特殊Blender&#xff0c;自己电脑中已下载好的可能不是很好使。 如果想查看UE相关的可以跳转到下边这两篇链接 1. …

Linux小知识分享-压缩包解压之后属主和属组不是当前用户问题

今天给大家分享一个Linux小知识 背景 假设当前Linux下用户是root&#xff0c;我们从网络上或者其他环境下载了个压缩包进行本地解压。 结果发现解压之后的文件或者文件夹的 属主和属主 都不是当前用户root # 检查当前用户 [roottest-xxxx-01-vm /tmp/colinspace ]# id uid0(…

IDEA 配置和缓存目录 设置

IDEA系列产品&#xff0c;一般会在用户目录创建 配置 和 缓存 目录&#xff1a; %APPDATA%\JetBrains%LOCALAPPDATA%\JetBrains 一般会展示为&#xff1a; C:\Users\<username>\AppData\Roaming\JetBrainsC:\Users\<username>\AppData\Local\JetBrains 一般占用…

MtfLive直播导航PHP源码,附带系统搭建教程

将自动采集斗鱼、虎牙、触手、YY、章鱼、电视直播按分类/关键词聚合&#xff0c;用户选择分类&#xff0c;可以观看到全网该关键词下正在直播的内容。 特点 PC站和H5移动站自适应 自动缓存&#xff0c;避免频繁抓取数据 自定义抓取采集规则&#xff0c;同时支持HTML和JSON …

Character Auras 3

该包包含12种惊人的光环效果! 列表: 秋天的氛围 血光 五彩纸屑的光环 疾风 火光光环 森林氛围 治疗光环 冰系光环 爱的光环 毒气环 星光气场 所有预制件都已准备好用于游戏,只需将它们拖放到游戏中即可! 下载: ​​Unity资源商店链接 资源下载链接 效果图:

OJ刷题:《剑指offer》之左旋字符串!

目录 1.题目描述 2.方法一&#xff08;元素一一挪&#xff09; 2.1算法解析 2.2代码实现 3.方法二&#xff08;三次逆置&#xff09; 3.1算法解析 3.2代码实现 4.方法三&#xff08;库方法&#xff09; 4.1算法解析 4.2代码实现 5.完结散花 创作不易&#xff0c;宝子…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏8(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言配置可使用物品功能下载一些水果模型代码实现使用物品 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中&#xff0c…

Java面对对象

Java面向对象 面对对象概述&#xff0c;类与对象&#xff0c;继承&#xff0c;重写与重载&#xff0c;多态&#xff0c;抽象&#xff0c;封装&#xff0c;包&#xff0c;泛型&#xff0c;异常 面对对象概述 什么是面向对象&#xff08;OOP&#xff09; 面向对象(Object Ori…

【python3.8 pre-commit报错】记录pre-commit install报错

一、问题 在执行pre-commit install --allow-missing-config命令时&#xff0c;报错 Traceback (most recent call last):File "C:\ProgramData\Anaconda3\envs\py38\lib\runpy.py", line 192, in _run_module_as_mainreturn _run_code(code, main_globals, None,F…

html,css,js速成

准备&#xff1a;vscode配好c&#xff0c;python&#xff0c;vue环境。 1. html hypertext markup language(超文本标记语言) 1. 基础语法 一个html元素由开始标签&#xff0c;填充文本&#xff0c;结束标签构成。 常见标签说明<b></b>粗体<i></i>…

免费分享一套SpringBoot+Vue药店(药房)管理系统,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue药店(药房)管理系统 &#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue药店(药房)管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue药店(药房)管理系统 Java毕业设计…

Jmeter学习系列之五:基础线程组(Thread Group)

前言 线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在 jmeter 中,每个线程意味着模拟一个真实用户向服务器发起请求。 在 jmeter 中,线程组组件运行用户设置线程数量、初始化方式等等配置。 例如,如果你设置线程数为 100,那么 jmeter 将创建…

C语言字符字符串函数:strcpy、strcat、strcmp介绍和模拟实现以及stnrcpy、strncat、strncmp介绍(近万字详解,建议三连收藏)

目录 1.strcpy(字符串拷贝函数&#xff09; 1.1函数介绍 1.2函数使用示范 1.3函数模拟实现 2.strcat(字符串追加函数&#xff09; 2.1函数介绍 2.2函数使用示范&#xff1a; 2.3函数模拟实现 &#xff1a; 2.4思考&#xff1a;字符串可以自己给自己追加吗&#xff1f; …

EDI报文到Excel转换方案详解

EDI目前已广泛应用于电子、物流、汽车、零售等行业。 越来越多的交易伙伴要求建立EDI连接&#xff0c;通过EDI来对接上下游交易伙伴&#xff0c;收发业务单据。 当我们与新的交易伙伴建立EDI连接时&#xff0c;有多种实施方案可供选择&#xff0c;如果您的单据量较少&#xf…

OBB头篇 | 原创自研 | YOLOv8 更换 SEResNeXtBottleneck 头 | 附详细结构图

左图:ResNet 的一个模块。右图:复杂度大致相同的 ResNeXt 模块,基数(cardinality)为32。图中的一层表示为(输入通道数,滤波器大小,输出通道数)。 1. 思路 ResNeXt是微软研究院在2017年发表的成果。它的设计灵感来自于经典的ResNet模型,但ResNeXt有个特别之处:它采用…

UE4学习笔记 FPS游戏制作3 添加武器

文章目录 章节目标为骨骼添加武器挂载点添加武器 章节目标 本章节为手部添加一个武器挂载点&#xff0c;并挂载一个武器 为骨骼添加武器挂载点 添加挂载点需要以一个动画片段为基础&#xff0c;为骨骼添加挂载点。 首先找到我们需要的动画片段&#xff0c;通常是idle 双击打…