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> {
    @Override
    public String getName() {
        return "MyTextView";
    }
    @Override
    protected 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 {

    @Override
    public List<NativeModule> createNativeModules(
            ReactApplicationContext reactContext) {
        List<NativeModule> modules = new ArrayList<>();
        modules.add(new OpenNativeModule(reactContext));
        return modules;
    }


    @Override
    public 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());

    }
}

第三步 将桥接文件引入

	@Override
        protected 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';

 <MyCustomText
      style={{ width: 100, height: 100 }} 
    text="00000"
    textSize={12}
    >

    </MyCustomText>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(5)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述&#xff08;4&#xff09; 4.1.2 PCIe总线使用的信号 PCIe设备使用两种电源信号供电&#xff0c;分别是Vcc与Vaux&#xff0c;其额定电压为3.3V。其中Vcc为主电源&#xff0c;PCIe设备…

关闭idea之后,项目还在运行,端口被占用

今天在写项目的时候&#xff0c;中途安装了一个插件&#xff0c;而且插件显示需要重启idea&#xff0c;重启的时候项目正在运行&#xff0c;重启之后发现idea没有显示有项目正在运行&#xff0c;当我要开启项目的时候&#xff0c;发现无法开启&#xff0c;显示端口被占用了&…

STM32学习笔记(六) —— 配置系统时钟

1.时钟树 从图中可以看出一共有四个时钟来源&#xff0c;分别是内部高速时钟、内部低速时钟、外部高速时钟接口、外部低速时钟接口&#xff0c;这些时钟源经过内部的倍频分频后提供给各外设使用。其中HSE与LSE需要由外部提供&#xff0c;可以是外部时钟直接输入&#xff0c;也可…

「效果图渲染」效果图与3D影视动画渲染平台

效果图渲染和3D影视动画渲染都是视觉图像渲染的领域应用。效果图渲染主要服务于建筑、室内设计和产品设计等行业&#xff0c;这些领域通常对视觉呈现的精度和细节有较高要求。与之相比&#xff0c;3D影视动画渲染则普遍应用于电影、电视、视频游戏和广告等媒体领域&#xff0c;…

力扣461. 汉明距离(位运算)

Problem: 461. 汉明距离 文章目录 题目描述思路复杂度Code 题目描述 思路 Problem: 力扣191. 位1的个数&#xff08;位运算&#xff09; 该题只需要在上题的基础上先对两个数进行一次异或操作即可 复杂度 时间复杂度: O ( 1 ) O(1) O(1) 空间复杂度: O ( 1 ) O(1) O(1) Code …

【linux】linux环境变量-详解-备查

【linux】linux环境变量-详解-备查 一、类型 **永久变量&#xff1a;**通过修改配置文件&#xff0c;配置之后变量永久生效。 用户变量&#xff08;局部变量&#xff09;&#xff1a;修改的设置只对某个用户的路径或执行起作用&#xff1b; 在用户目录下的.bash_profile文件…

GPT-4这么厉害,能替代中之人吗?我们找虚拟偶像粉聊了聊

本文为 澎湃号湃客 至顶头条 联合出品 作者 | 张晓迪 编辑 | 王恒婷 就在人们还在讨论ChatGPT如何商业化时,GPT-4直接给出了答案。 3月17日凌晨,在GPT-4发布后的48小时,微软Office全家桶也带着GPT-4生成的Copilot来到办公室里给打工人“减负”了。 多模态大型语言模型…

【教程】谈一谈 IPA 上传到 App Store Connect 的几种方法

引言 在应用开发过程中&#xff0c;将应用程序上传到 App Store Connect 是一个关键的环节。本文将探讨几种常见的 IPA 文件上传方法&#xff0c;包括 Xcode、Application Loader、altool、Appuploader以及Transporter。通过本文的介绍和指导&#xff0c;读者将能够了解不同的…

看完这篇文章,你一定能看懂Datasheet!

大家好&#xff0c;我是砖一。 针对以上学妹的疑问&#xff0c;我有几点建议&#xff0c;大家可以听一下~ 一&#xff0c;怎么样查找Datasheet&#xff08;数据手册&#xff09; 大多数人下意识就点开浏览器&#xff0c;把型号往里面一输&#xff0c;不建议这样。 对于刚入行…

文心一言APP推出新功能:数字分身,只需一张照片和三句话即可创建自己的电子替身

文心一言APP近日推出了一项炸裂的新功能&#xff1a;数字分身。这一创新技术让用户通过一张照片和三句语音录制&#xff0c;轻松创建属于自己的数字分身。这一功能降低了数字分身技术的门槛&#xff0c;让更多人能够体验到个性化的虚拟形象。华为手机市场直接搜“文心一言”就可…

uniapp中组件库Mask 遮罩层 的使用方法

目录 #平台差异说明 #基本使用 #嵌入内容 #遮罩样式 #API #Props #Events #Slot 创建一个遮罩层&#xff0c;用于强调特定的页面元素&#xff0c;并阻止用户对遮罩下层的内容进行操作&#xff0c;一般用于弹窗场景 #平台差异说明 AppH5微信小程序支付宝小程序百度小程…

【TikTok选品】一周创下两百万销售额!这款小小遮瑕膏,如何从美区美妆市场杀出重围?

新年新气象。2024年以来&#xff0c;美区销售额周榜常有黑马&#xff0c;看得出卖家都卯足了劲在新的一年打下更亮眼的业绩。超店有数观察了TikTok选品数据&#xff0c;监测到上周TikTok美区就有一个新品在竞争激烈的美妆市场中杀出重围&#xff0c;在一周内创下200万美金的超高…

智慧工地可视化综合管理云平台 PC+APP

目录 一、智慧工地可视化数据大屏功能一览 1.首页 2.视频监控 3.机械设备 4.环境监测 5.安全管理 6.质量管理 7.劳务分析 8.进度管理 9.报警统计 二、项目人员管理 1.信息管理 2.信息采集 3.证件管理 危大工程管理 一、智慧工地可视化数据大屏功能一览 包括&am…

第二期《计算机视觉处理设计开发工程师》的培训通知

近日我们刚刚结束了《计算机视觉处理设计开发工程师》证书第一期培训&#xff0c;培训效果良好&#xff0c;所有学员均通过工信部统一线上考试&#xff0c;坐等证书了。鉴于学员们的反应我们第二期课程如约而至。 证书出台背景&#xff1a;为进一步贯彻落实中共中央印发《关于深…

F - Fence Bowling ——二分答案

Olav正在独自度过一个晚上&#xff0c;在保龄球馆练习。令人恼火的是&#xff0c;他所在的球道的侧栏被卡在了活动位置&#xff0c;所以如果球出界&#xff0c;它会简单地反弹回来。 这对Olav来说似乎是不公平的&#xff0c;因此他决定任何一次投球如果在击中销钉之前没有在篱笆…

【C语言】初阶指针(2)

目录 前言 1. 指针访问数组 1.1 数组名的含义 1.2 使用指针访问数组 2. 一维数组传参的本质 3. 二级指针 4. 指针数组 4.1 指针数组模拟二维数组 结语 前言 在本篇文章中&#xff0c;我们将要一起来探讨指针与数组之间的关系&#xff0c;以及如何理解指针数组及其运用…

adb脚本操作

用荣耀80手机测试 echo off setlocal enabledelayedexpansion adb shell am start com.android.settings timeout /t 2 /nobreak >nul adb shell input tap 500 1300 timeout /t 2 /nobreak >nul adb shell input tap 500 800 timeout /t 2 /nobreak >nul adb she…

常用数据分析模型与方法

常用数据分析模型与方法 在进行数据分析过程中&#xff0c;通常需要使用各种模型来证明自己的分析观点&#xff0c;一是为了使自己的结论更具备说服力&#xff0c;二是让自己的论证过程更具备逻辑性和条理性。 FineBI 推出部分数据分析方法&#xff0c;帮助用户更好的使用 BI 进…

gilab 展示测试用例结果详情页面

Python 此示例使用带有 --junitxmlreport.xml 标志的 pytest 将输出格式化为 JUnit 报告 XML 格式&#xff1a;gitlab 会自动去解析report.xml 这个文件&#xff0c;并且将每个case的测试结果展示在gitlab中pytest:stage: testscript:- pytest --junitxmlreport.xmlartifacts:w…

docker-学习-4

docker学习第四天 docker学习第四天1. 回顾1.1. 容器的网络类型1.2. 容器的本质1.3. 数据的持久化1.4. 看有哪些卷1.5. 看卷的详细信息 2. 如何做多台宿主机里的多个容器之间的数据共享2.1. 概念2.2. 搭NFS服务器实现多个容器之间的数据共享的详细步骤2.3. 如果是多台机器&…
最新文章