Native常用组件

推荐官网 https://reactnative.cn/

Text&View

<View>
    <Text>Hello World!</Text>
    <Text>你好</Text>
</View>

Button

<Button 
    onPress={(e) => this.onPressLearnMore(e)}
    title="查看更多"
    color="#841584"
/>

buttonExample.png

警告框 ( Alert )

Alert.alert('这是标题','这是描述文字')

Alert.alert(
  '这是标题',
  '这是描述',
  [
    {text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
    {text: 'OK', onPress: () => console.log('OK Pressed')},
  ]
)

//  自定义
Alert.alert(
  '这是标题',
  '这是描述',
  [
    {text: '这是自定义按钮', onPress: () => console.log('Ask me later pressed')},
    {text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
    {text: 'OK', onPress: () => console.log('OK Pressed')},
  ]
)

exampleandroid.gif

图片

 <Image source={{ uri: item.defaultImage }}  ></Image>

 <Image source={ require('../images/f.png'),}/>

TouchableOpacity 点击半透明

<TouchableOpacity
     onPress={this.itemClick.bind(this,item)}>
</TouchableOpacity>

flatList列表 columnWrapperStyle 行样式 refreshing 是否刷新中 true | false onRefresh 下拉刷新动作 onEndReached 触底动作 data 指向数据 numColumns 列显示个数 renderItem 渲染数据项目

  <FlatList
  keyExtractor={(item)=>item.ID}
  columnWrapperStyle={styles.row}
  refreshing={this.state.refreshing}
  onRefresh={()=>{this.getMovie()}}
  onEndReached={()=>{this.getMovie(2)}}
  data={this.state.movies}
  numColumns ={3}              
  renderItem={({item}) => {return(

  <View 
    key={item.ID} 
    style={styles.col,styles.subCenter}  >
     <TouchableOpacity
     onPress={this.itemClick.bind(this,item)}>
      <Image source={{ uri: item.defaultImage }} style={{width:125, height: 160}} ></Image>
      <Text>{item.MovieName}</Text>
  </TouchableOpacity>
</View>)}}
/>

样式

color 颜色

React Native 支持了 CSS 中大部分的颜色类型

Number 数值

在 React-Native 中,并不支持百分比单位,目前只支持一种单位,即 pt 绝对长度单位,同时,你在定义时不需要加单位

RN 默认 flex布局 flexDirection 默认值为 column 垂直布局

import {  StyleSheet} from 'react-native';

const styles = StyleSheet.create({
  row:{
    display:'flex',
    flexDirection:'row',
    justifyContent:'space-around'
  },  
  col:{
    flex:1,
  },
 })

使用方式

<Image source={{ uri: item.defaultImage }} style={{width:125, height: 160}} ></Image>
// 行内样式

<View style={styles.row}>
// 指定样式

<View style={[styles.row,styles.overlay]}>
// 指定多个样式

react-native-swiper 幻灯片

showButtons 是否显示左右按钮
autoplay 自动播放
activeDotColor 激活颜色

<Swiper
    showsButtons = {false}
    autoplay={false}
    style={{height:160}}
    activeDotColor="#f0f"

  >
    <View style={styles.slide}>
      <Text >Android</Text>
    </View>
    <View style={[styles.slide,styles.blue]}>
      <Text>iOS</Text>
    </View>
    <View style={styles.slide}>
      <Text>Java</Text>
    </View>
</Swiper>

input

 <TextInput
      style={{ height: 40, borderColor: 'gray', borderWidth: 1 }}
      onChangeText={text => onChangeText(text)}
      value={value}
       maxLength={40}
       onBlur={}
    />

扩展

StatusBar

barStyle 状态栏文字的颜色 default | light-content

<StatusBar barStyle={'light-content'} />

backgroundColor Android 设备上状态栏的背景颜色

<StatusBar backgroundColor={'blue'} />

translucent 设置状态栏是否为透明 true | false 。 当状态栏的值为 true 的时候,应用将会在状态栏下面进行绘制显示。这样在 Android 平台上面就是沉浸式的效果,可以达到 Android 和 iOS 应用显示效果的一致性。 该值常常同配置半透明效果的状态栏颜色一起使用。

<StatusBar translucent={true} />

React$Node

这种语法
const App: () => React$Node = () => {
}

就相当于
class App extends React.Component {
render() {
}
}

新的写法省略了写rander方法,但VScode会报错,可以改成老的写法也没问题

SafeAreaView

加入了针对iPhoneX设备齐刘海页面适配的组件SafeAreaView,为ReactNative开发APP时对iPhone X的页面适配提供了很大的方便

image

Dimensions

Dimensions API 介绍 我们使用 Dimensions API 可以得到手机屏幕的宽和高。

onLayout 回调函数还可以用来监测设备放置状态的改变,并得到改变后的新的屏幕高度和宽度。


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

export default class App extends Component { 
  _onLayout(event) { 
    {
      let { x, y, width, height } = event.nativeEvent.layout;
      console.log('通过onLayout得到的宽度:' + width);
      console.log('通过onLayout得到的高度:' + height);
    }

    let { width, height } = Dimensions.get('window');
    console.log('通过Dimensions得到的宽度:' + width);
    console.log('通过Dimensions得到的高度:' + height);
  }

  render() { 
    return (
      <View style={styles.container} onLayout = {this._onLayout}>

      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',

  },

})
输出结果

03-22 11:25:25.444  1339  3924 I ReactNativeJS: 通过onLayout得到的宽度:411.4285583496094
03-22 11:25:25.444  1339  3924 I ReactNativeJS: 通过onLayout得到的高度:659.4285888671875
03-22 11:25:25.444  1339  3924 I ReactNativeJS: 通过Dimensions得到的宽度:411.42857142857144
03-22 11:25:25.444  1339  3924 I ReactNativeJS: 通过Dimensions得到的高度:683.4285714285714
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352

推荐阅读更多精彩内容