基础篇章:关于 React Native 之 ToolbarAndroid 组件的讲解
时间:2022-04-26
本文章向大家介绍基础篇章:关于 React Native 之 ToolbarAndroid 组件的讲解,主要内容包括性格特点、实例代码、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
组件已经讲了不少了,相信大家对React Native都已经有了很多了解和自己的理解了,相信聪明的开发者已经发现了,这些组件的用法和我们原生开发中控件都是类似的,大同小异的,只不过是用的语言不太相同罢了,学得快的同学可以去官网直接看官方文档学习了。今天我们讲ToolbarAndroid,顾名思义,这个组件只能在Android平台用,而且跟Android原生中的Toolbar控件基本一样。
大家好,我是ToolbarAndroid,在React Native中是一个包装了仅限Android平台的工具栏控件的React组件。我可以显示一个标志,一个导航图标(譬如汉堡形状的菜单按钮),一个标题与副标题,以及一个功能列表。标题和副标题会在中间显示,徽标和导航图标会在左侧显示,而功能列表则在右侧显示。
如果我的工具栏上只有一个子节点,那么它将在标题与功能列表之间显示。
熟悉Android toolbar的朋友肯定就会熟悉我,因为我和它就像是双胞胎一样的好朋友,毕竟我就是根据它而定制的嘛。
特别注意:尽管我上面的标识(徽标)和导航图标可以显示远程图片,也就是从服务器和网络获取,但是仅限开发者模式,如果在发行(release)模式下,你永远都应该用图片资源来渲染这些图标。使用require('./some_icon.png')会自动帮你包装好,所以只要你不直接用{uri:'http://...'},就没什么问题。
性格特点
看完我的简单介绍,那就一起来看看我有哪些属性吧,还是那句话,只有熟悉了我的性格特点,知彼知己,才能运用自如嘛。
- actions 设置功能列表的属性,这跟android原生中的toolbar简直太像了,有如下属性[{title: string, icon: optionalImageSource, show: enum('always', 'ifRoom', 'never'), showWithText: bool}] 。
- title 功能标题
- icon 功能图标
- show icon显示还是隐藏,在弹出菜单里显示:always总是显示,ifRoom如果放的下则显示,或者never从不显示。
- showWithText bool值,是否在显示图标的地方同时还显示文字
- contentInsetEnd 设置Toolbar的右边和屏幕右边缘的距离
- contentInsetStart 作用同上,与上面正好相反
- logo 设置toolbar的标志,徽标也就是logo
- navIcon 设置导航图标
- onActionSelected func 当右边功能列表一个功能被选中的时候调用此回调。传递给此回调的唯一参数是该功能在actions数组中的位置
- onIconClicked func 当图标被点击时,回调此函数
- overflowIcon 设置功能列表的弹出菜单的图标
- rtl bool 设置toolbar的排列顺序为从右到左。除了将这一属性设为true以外,你还需要在AndroidManifest.xml中添加:android:supportsRtl="true"以及在MainActivity的onCreate方法中调用 setLayoutDirection(LayoutDirection.RTL)
- subtitle 设置子(副)标题
- subtitleColor 设置子(副)标题字体颜色
- title 设置标题
- titleColor 设置标题字体颜色
实例代码
来,看实例代码前,我们先来看看和我玩好之后,我的样子,怎么样,是不是和Android中的toobar,我哥哥样子一模一样啊?
实例代码
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
var ToolbarAndroid = require('ToolbarAndroid');
var toolbarActions = [
{title: 'weibo', icon: require('./image/icon_weibo.png'), show: 'always'},
{title: 'loonggg'},
{title: 'blog', icon: require('./image/icon_blog.png'), show: 'always'},
];
export default class ToolbarDemo extends Component {
render() {
return (
<View style={styles.container}>
<ToolbarAndroid
actions={toolbarActions}
navIcon={require('./image/menu_icon.png')}
logo={require('./image/logo.png')}
style={styles.toolbar}
subtitle="非著名程序员"
subtitleColor="#ffffff"
titleColor="#ffffff"
title="涩郎"/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'white',
},
toolbar: {
backgroundColor: '#c6c5b9',
height: 56,
},
});
AppRegistry.registerComponent('ToolbarDemo', () => ToolbarDemo);
- 聊聊ES7与ES8特性
- 机器学习的技术栈及应用实例脑洞
- Ryu:OpenFlow协议源码分析
- 详解 LSTM
- 并发系列:从原子更新到CPU锁
- 前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍
- 神经网络 之 感知器的概念和实现
- 图解ByteBuffer
- TensorFlow-1: 如何识别数字
- 你应该知道的Java垃圾收集器 - 串行、并行、CMS、G1
- ckplayer 如何在PC上完美支持 m3u8播放
- TensorFlow-2: 用 CNN 识别数字
- js图片前端预览之 filereader 和 window.URL.createObjectURL
- TensorFlow-3: 用 feed-forward neural network 识别数字
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux定时任务Crontab的使用方法
- linux虚拟网络设备之vlan配置详解
- Centos7安装完后无法联网的解决方法
- Linux静态链接库与模板类的处理方式
- 深入研究RocketMQ消费者是如何获取消息的
- CentOS7下 Apache的安装配置方法
- expect命令在linux下实现批量ssh免密
- 学习Vim合并行的方法和技巧
- 九种查找算法
- 代码防御性编程的十条技巧
- Ubuntu终端多窗口分屏Terminator
- linux 编译安装python3.6的教程详解
- Unix/Linux系统下的nobody用户与nologin详细介绍
- 详解flutter engine 那些没被释放的东西
- Centos7安装PHP及Nginx的教程详解