【问题标题】:How to add Image instead of Icons in header react native elements如何在标题中添加图像而不是图标反应原生元素
【发布时间】:2020-06-27 20:39:30
【问题描述】:

我正在使用 react native elements Header 来显示我的抽屉,我面临两个问题: 1)我的抽屉没有覆盖整个顶部(标题区域)。 (可以在图片中看到蓝色不覆盖整个标题) 2)如何添加图像而不是图标,因为我不想使用 react-native-vector-icons 以及如何在该图像上添加 onPress() 方法,基本上我想添加 onPress openDrawer 的自定义抽屉图像。

这是我的代码:

import React, { Component } from 'react';
import { StyleSheet, Text, View,Image,TouchableOpacity, Alert } from 'react-native';
import Timeline from 'react-native-timeline-flatlist';
import {Header} from 'react-native-elements';
export default class HomeTimeTable extends Component {
  render() {
    //'rgb(45,156,219)'
    return (
      <View style={styles.container}>
      <Header
  placement="left"
  leftComponent={{ icon: 'menu', color: '#fff' }}
  centerComponent={{ text: 'MY TITLE', style: { color: '#fff' } }}
  rightComponent={{ icon: 'home', color: '#fff' }}
/>
        <Timeline
          ...
        />
      </View>
    );
  }
}

这是我的样式表:

const styles = StyleSheet.create({
  container: {
    flex: 1,
    padding: 20,
    backgroundColor: 'white',
  },
  list: {
    flex: 1,
    marginTop: 20,
  },
  drawer:{
      width:20,
      height:20,
      justifyContent:"flex-start",
  }
});

【问题讨论】:

    标签: css react-native react-native-elements react-native-stylesheet


    【解决方案1】:

    下面的代码应该可以工作。

    import React, { Component } from 'react';
    import { StyleSheet, Text, View,Image,TouchableOpacity, Alert, Image } from 'react-native';
    import Timeline from 'react-native-timeline-flatlist';
    import {Header} from 'react-native-elements';
    export default class HomeTimeTable extends Component {
    
      const renderCustomIconA = () => {
        return(
          <TouchableOpacity onPress={() => {console.log('A Pressed!')}}>
            <Image
              style={{width: 50, height: 50}}
              source={{uri: 'https://reactnative.dev/img/tiny_logo.png'}}
             />
           </TouchableOpacity>
        );
      };
    
      const renderCustomIconB = () => {
        return(
          <TouchableOpacity onPress={() => {console.log('B Pressed!')}}>
            <Image
              style={{width: 50, height: 50}}
              source={{uri: 'https://reactnative.dev/img/tiny_logo.png'}}
             />
           </TouchableOpacity>
        );
      };
    
      render() {
        //'rgb(45,156,219)'
        return (
          <>
            <Header
              placement="left"
              leftComponent={() => renderCustomIconA()}
              centerComponent={{ text: 'MY TITLE', style: { color: '#fff' } }}
              rightComponent={() => renderCustomIconB()}
            />
            <View style={styles.container}>
              <Timeline
              ...
              />
            </View>
          </>
    
        );
      }
    }
    

    【讨论】:

    • 好吧,看起来不错,我已经尝试过并解决了我的第二个问题,但标题仍然没有显示为完整的标题,如上图所示。
    • 你确定吗?上面的例子必须解决这两个问题。标题组件必须在顶部。
    • U 在标题之前添加了 ,这给了我 JSX 错误,我在 下添加了标题
    • 您可以在 .... > 或 .... 之间包装整个代码。 也可以正常工作,但片段更干净。
    • 我解决了这个问题,问题出在我的主容器填充上,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    相关资源
    最近更新 更多