ToolbarAndroid

React 组件,包装了 Android Toolbar 小工具。工具栏可以显示一个标志,导航图标(如汉堡包菜单),标题和副标题和操作列表。标题和子标题被扩展这样以来标志和导航图标显示在左边,标题和副标题在中间并且操作在右边。

如果工具栏具有唯一子级,它将显示在标题和操作之间。

例子:

  1. render: function() {
  2. return (
  3. <ToolbarAndroid
  4. logo={require('image!app_logo')}
  5. title="AwesomeApp"
  6. actions={[{title: 'Settings', icon: require('image!icon_settings')
  7. show: 'always'}]}
  8. onActionSelected={this.onActionSelected} />
  9. )
  10. },
  11. onActionSelected: function(position) {
  12. if (position === 0) { // index of 'Settings'
  13. }
  14. }

属性

actions [{title: string, icon: Image.propTypes.source, show: enum(‘always’, ‘ifRoom’, ‘never’), showWithText: bool}]

将工具栏上的可能动作设置为动作菜单的一部分。这些都显示为图标或小部件右侧的文本。如果不适合,它们将被放置在一个’溢出’菜单。

此属性需要一个对象数组,其中每个对象具有以下键:

  • title:必要的, 这个操作的标题

  • icon: 这个操作的图标,例如: require('image!some_icon')

  • show:当把这个操作显示为一个图标或隐藏在溢出菜单中时: always, ifRoomnever

  • showWithText: 布尔值,是否显示图标旁边的文本

logo Image.propTypes.source

  1. 设置工具栏的标志。

navIcon Image.propTypes.source

  1. 设置导航图标。

onActionSelected function

  1. 被选中时调用回调函数。传递到回调的唯一参数是操作数组中的位置。

onIconClicked function

  1. 在选定图标时调用。

subtitle string

  1. 设置工具栏副标题。

subtitleColor string

  1. 设置工具栏副标题的颜色。

testID string

  1. 用于在端到端测试中查找此视图。

title string

  1. 设置工具栏标题。

titleColor string

  1. 设置工具栏副标题的颜色。

例子

  1. 'use strict';
  2. var React = require('react-native');
  3. var {
  4. StyleSheet,
  5. Text,
  6. View,
  7. } = React;
  8. var UIExplorerBlock = require('./UIExplorerBlock');
  9. var UIExplorerPage = require('./UIExplorerPage');
  10. var SwitchAndroid = require('SwitchAndroid');
  11. var ToolbarAndroid = require('ToolbarAndroid');
  12. var ToolbarAndroidExample = React.createClass({
  13. statics: {
  14. title: '<ToolbarAndroid>',
  15. description: 'Examples of using the Android toolbar.'
  16. },
  17. getInitialState: function() {
  18. return {
  19. actionText: 'Example app with toolbar component',
  20. toolbarSwitch: false,
  21. colorProps: {
  22. titleColor: '#3b5998',
  23. subtitleColor: '#6a7180',
  24. },
  25. };
  26. },
  27. render: function() {
  28. return (
  29. <UIExplorerPage title="<ToolbarAndroid>">
  30. <UIExplorerBlock title="Toolbar with title/subtitle and actions">
  31. <ToolbarAndroid
  32. actions={toolbarActions}
  33. navIcon={require('image!ic_menu_black_24dp')}
  34. onActionSelected={this._onActionSelected}
  35. onIconClicked={() => this.setState({actionText: 'Icon clicked'})}
  36. style={styles.toolbar}
  37. subtitle={this.state.actionText}
  38. title="Toolbar" />
  39. <Text>{this.state.actionText}</Text>
  40. </UIExplorerBlock>
  41. <UIExplorerBlock title="Toolbar with logo & custom title view (a View with Switch+Text)">
  42. <ToolbarAndroid
  43. logo={require('image!launcher_icon')}
  44. style={styles.toolbar}>
  45. <View style={{height: 56, flexDirection: 'row', alignItems: 'center'}}>
  46. <SwitchAndroid
  47. value={this.state.toolbarSwitch}
  48. onValueChange={(value) => this.setState({'toolbarSwitch': value})} />
  49. <Text>{'\'Tis but a switch'}</Text>
  50. </View>
  51. </ToolbarAndroid>
  52. </UIExplorerBlock>
  53. <UIExplorerBlock title="Toolbar with no icon">
  54. <ToolbarAndroid
  55. actions={toolbarActions}
  56. style={styles.toolbar}
  57. subtitle="There be no icon here" />
  58. </UIExplorerBlock>
  59. <UIExplorerBlock title="Toolbar with navIcon & logo, no title">
  60. <ToolbarAndroid
  61. actions={toolbarActions}
  62. logo={require('image!launcher_icon')}
  63. navIcon={require('image!ic_menu_black_24dp')}
  64. style={styles.toolbar} />
  65. </UIExplorerBlock>
  66. <UIExplorerBlock title="Toolbar with custom title colors">
  67. <ToolbarAndroid
  68. navIcon={require('image!ic_menu_black_24dp')}
  69. onIconClicked={() => this.setState({colorProps: {}})}
  70. title="Wow, such toolbar"
  71. style={styles.toolbar}
  72. subtitle="Much native"
  73. {...this.state.colorProps} />
  74. <Text>
  75. Touch the icon to reset the custom colors to the default (theme-provided) ones.
  76. </Text>
  77. </UIExplorerBlock>
  78. </UIExplorerPage>
  79. );
  80. },
  81. _onActionSelected: function(position) {
  82. this.setState({
  83. actionText: 'Selected ' + toolbarActions[position].title,
  84. });
  85. },
  86. });
  87. var toolbarActions = [
  88. {title: 'Create', icon: require('image!ic_create_black_48dp'), show: 'always'},
  89. {title: 'Filter'},
  90. {title: 'Settings', icon: require('image!ic_settings_black_48dp'), show: 'always'},
  91. ];
  92. var styles = StyleSheet.create({
  93. toolbar: {
  94. backgroundColor: '#e9eaed',
  95. height: 56,
  96. },
  97. });
  98. module.exports = ToolbarAndroidExample;