1.RN中的常用组件-----图片

本地图片: <Image  source={require('../src/assets/x.jpg')}/>

本地图片可以无需指定尺寸(因为导入/打包在服务器端进行),默认是原始尺寸;如果指定了width,height不会自动的修改,

也必须手工赋值.

远程图片:<Image  source={ {uri:'http://t.cn/logo.png'} }  style={{width:x,height:x }}/>

注意:Image的source可以赋值为"远程图片的URL地址"或者"本地的图片数据"----本地图片

不能使用文件路径字符串!远程图片需要异步请求,初始时图片尺寸为0;请求完成后默认尺寸

仍然为0-----必须手工设置远程图片的尺寸 (防止页面重排)

Image组件的resizeMode决定了图片尺寸与组件尺寸不等如何缩放,可取值:

①cover:覆盖,等比例缩放图片,保证完全覆盖组件的宽和高,溢出部分不显示

②contain:包含,等比例缩放图片,保证容器可以完全容纳图片全部内容,可能出现留白

③stretch:拉伸,不等比例缩放图片,保证容器可以完全容纳图片的全部内容,不会留白

但图片变形.

④repeat:重复,等比例缩放图片,在容器中平铺图片,保证没有留白

⑤center:图片不拉伸直接放置在容器正中央.

重点:如何获取远程图片的原始尺寸?从而实现图片内容全部显示且无留白

Image.getSize(uri,(w,h)=>{ },(err)=>{ })

小知识:url、uri、urn三者间的关系?

Unified Resource Identifier:统一的 资源识别符

Unified Resource Locator:统一的资源定位符,如http://b.com/logo.jpg

Unified Resource Naming:统一的资源命名符,如tel:13312345435、mailto:tom@t.cn

URI= URL +URN

2.RN中的常用组件-----活动指示器

<ActivityIndicator  size="small/large" color="#f00"/>

显示一个"加载中"的圆环动画图片;默认为小号,可以设置大号;

注意:页面中最后一个"活动指示器"的color会影响前面所有指示器的颜色.

使用本地图片时的经典错误:

this.state.list = [

'./src/asset1/0.jpg',

'./src/assets/1.jpg'

]

<View>

{
     this.state.list.map((e, i)=>{

return  <Image  source={require(e)}/>

})

}

</View>

错误提示:  Invalid call at line xx: require(e)

错误原因:  require放在循环/选择中,变为动态导入,Webpack打包时不支持动态导入!

解决方法:  把动态导入变为静态导入:

this.state.list = [

require('./src/asset1/0.jpg'),

require('./src/assets/1.jpg')

]

<View>

{
     this.state.list.map((e, i)=>{

return  <Image  source={ e }/>

})

}

</View>

3.RN中的常用组件——开关

<Switch  value={ 布尔变量 }  onValueChange={事件处理函数} />

属于需要进行“双向数据绑定”的受控组件,value是boolean数据

4.RN中的常用组件——触摸反馈

<TouchableOpacity>

其它组件(文字/图片等)

</TouchableOpacity>

提示:RN中提供了四个触摸反馈组件,其中TouchableOpacity是触摸后发生透明度的改变

5.RN中的常用组件——简单列表——难点&重点

高性能的列表组件——底层值挂载当前需要显示的列表项,以及上方/下方若干条即将被显示的列表项,更大范围内列的表项不进行挂载

<FlatList  data={数组}  renderItem={ this._renderItem }  keyExtractor={this._keyExtractor} />

_renderItem = ( obj )=>{

//obj.item:是一个数据   obj.index:是该数据的下标

return (表示一个列表项的JSX)

}

FlatList组件的属性:

①data:必需的,数组类型,指定列表要渲染的数据

②renderItem:必需的,函数类型,指定如何渲染一个列表项

③keyExtractor:函数类型,指定如何提取每个列表项的key

④ListHeaderComponent:函数类型,指定列表头部内容

⑤ListFooterComponent:函数类型,指定列表尾部内容

⑥ItemSeparatorComponent:函数类型,指定列表项间的分隔条内容

⑦onEndReached:事件,指代滚动到了列表尾部

⑧onEndReachedThreshold:数字,0~1之间,指定滚动到距离底部还剩多远时触发onEndReached事件

6.RN中的路由和导航实现

提示:RN的运行不依赖于浏览器!没有window.navigator/history对象!甚至

没有Page的概念!------RN中切换是Screen,不是Page.

RN官方没有提供导航组件,推荐使用第三方导航组件:React Navigation

React  Navigation的官网:https://reactnavigation.org/

ReactNavigation 的使用步骤:

①在当前项目下载必须的NPM包

npm  i   react-navigation

npm  i   react-navite-gesture-hanlder

npm  i   react-native-reanimated

②创建路由词典

③应用路由词典

④访问测试

RN中的常用组件-----图片的更多相关文章

  1. .NET6中一些常用组件的配置及使用记录,持续更新中。。。

    NET6App 介绍 .NET 6的CoreApp框架,用来学习.NET6的一些变动和新特性,使用EFCore,等一系列组件的运用,每个用单独的文档篇章记录,持续更新文档哦. 如果对您有帮助,点击右上 ...

  2. Extjs4中的常用组件:Grid、Tree和Form

    至此我们已经学习了Data包和布局等API.下面我们来学习作为Extjs框架中我们用得最多的用来展现数据的Grid.Tree和Form吧! 目录: 5.1. Grid panel 5.1.1. Col ...

  3. java.util.concurrent中的常用组件

    一. CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执 ...

  4. android 中的常用组件

    gradle gradle 是个啥,一开始我也没弄清,官方解释是: Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具 那么Apache Ant和Apache ...

  5. android app开发中的常用组件

    1 Activity 1.1 Activity的启动 第一,android manifest中指定的主activity,点击app的icon启动进入. 第二,使用intent,在另外一个activit ...

  6. cocos 常用组件

    前面的话 本文将详细介绍 cocos 中的常用组件 Sprite [概述] Sprite(精灵)是 2D 游戏中最常见的显示图像的方式,在节点上添加 Sprite 组件,就可以在场景中显示项目资源中的 ...

  7. 第17讲- UI常用组件之ImageView图片浏览

    第17讲 UI常用组件之ImageView图片浏览 二.图片浏览ImageView ImageView就是一个用来显示图片的视图: ImageView常见属性 常见属性 对应方法 说明 android ...

  8. android开发常用组件【持续更新中。。。】

    UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...

  9. 杂谈SharpDx中的WIC组件——我们需要WIC的图片编码功能么?

    在前文 SharpDX之Direct2D教程II——加载位图文件和保存位图文件 中,发现在VB2010中不能很好的运用SharpDx中的WIC组件进行图片的编码工作.可能是我的设置问题,也可能是Sha ...

随机推荐

  1. notepad正则删除关键词所在行

    转自:http://www.gangzi.net/article/615.htm 查找:^.*大师兄.*$替换为:(空) 如果不留空行:查找:^.*大师兄.*\r?\n替换为:(空)注意:Notepa ...

  2. C/C++ 程序执行时间

    C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t.在MSDN中,查得对clock函数定义如下: clock_t clock( void ); 这个函数返回从“开启这个程序进 ...

  3. HDU 1874 畅通工程续 2008浙大研究生复试热身赛(2)

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  4. muduo网络库源码学习————无界队列和有界队列

    muduo库里实现了两个队列模板类:无界队列为BlockingQueue.h,有界队列为BoundedBlockingQueue.h,两个测试程序实现了生产者和消费者模型.(这里以无界队列为例,有界队 ...

  5. 关于MySQL数据库的卸载

    首先对于MySQL这款数据库来讲,不能简单的卸载就草草了事,我们首先在mysql的文件下面找到my.ini这个文件, 在其中找到mysql数据库所产生的data文件,这个文件一般在c盘的一个隐藏目录下 ...

  6. D. Distance in Tree(树型Dp计数)

    \(其实思路都能想到一点,就是去重这里特别麻烦,没有好的思路.\) \(设dp[i][j]为以i为根深度为j的节点数量\) \(dp[parent][j]=\sum{dp[son][j-1]}\) \ ...

  7. GIL-Guilds(黑白灰染色)

    传送门门门门门咩咩咩咩咩咩咩咩咩咩咩咩 \(这题真是扯谈!!!\) \(灰色很高级是吧,但是题目没要你把颜色全部用上去啊!!!\) \(黑色或者白色只有一个条件,但灰色需要和所有三种颜色都相邻.这么难 ...

  8. 线段树 扫描线 L - Atlantis HDU - 1542 M - City Horizon POJ - 3277 N - Paint the Wall HDU - 1543

    学习博客推荐——线段树+扫描线(有关扫描线的理解) 我觉得要注意的几点 1 我的模板线段树的叶子节点存的都是 x[L]~x[L+1] 2 如果没有必要这个lazy 标志是可以不下传的 也就省了一个pu ...

  9. P2774 方格取数问题 网络流

    题目: P2774 方格取数问题 题目背景 none! 题目描述 在一个有 m*n 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大. ...

  10. G - Island Transport 网络流

    题目: In the vast waters far far away, there are many islands. People are living on the islands, and a ...