如何在React Native中实现Font Awesome堆栈图标功能

时间:2019-08-29 00:19:03

标签: reactjs react-native font-awesome react-native-vector-icons

使用React native实现堆栈/重叠图标。

我正在尝试在本机反应中实现以下目标: https://fontawesome.com/how-to-use/on-the-web/styling/stacking-icons

如何实现?

3 个答案:

答案 0 :(得分:2)

输出:

enter image description here

在此示例中,我堆叠了FontAwesome图标“ square”和“ home”。要堆叠它们,您需要具有position: 'relative'的父视图。然后,您可以将position: 'absolute'和一个zIndex应用于应该位于另一个图标上方的图标。之后,您可以使用例如top / left样式属性来放置图标。

代码:

  <View style={{position: 'relative'}}>
         <Icon name="square" size={24} color={"black"} />
         <Icon 
          name="home" 
          size={24} 
          color={"white"} 
          style={{position: 'absolute', zIndex: 99, left: 0, top: 0}} />  
  </View>

演示:

https://snack.expo.io/rkHnZJrrH

答案 1 :(得分:1)

您可以通过这样做来实现。使用宽度和高度可以帮助您将视图保持在适当的位置,并使所有内容与中心对齐,使其看起来像堆叠的图标。enter image description here

<View style={{
        position:"relative",
        justifyContent:'center',
        alignItems:"center",
        width:40,
        height:40
      }}>
         <Icon name="circle" size={34} color={"black"} />
         <Icon name="flag" size={20} color={"white"} style={{position: 'absolute', zIndex: 99}} />  
      </View>

https://snack.expo.io/HkxWerHBr

答案 2 :(得分:-1)

能够通过反应本机元素实现这种目的[不确定它们是否在内部使用zIndex]

render() {
    return (
      <View style={styles.container}>
        <View
          style={{
            position: 'relative',
            height: 64,
            width: 64,
            justifyContent: 'center',
            alignItems: 'center',
          }}>
          <Icon type="font-awesome" name="square" size={64} />
          <Icon
            type="font-awesome"
            name="twitter"
            color="white"
            size={32}
            containerStyle={{ position: 'absolute' }}
          />
        </View>
      </View>
    );
  }

容器样式为

  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    paddingTop: Constants.statusBarHeight,
    backgroundColor: '#ecf0f1',
    padding: 8,
  }

零食回购:

https://snack.expo.io/@roach_iam/vigorous-blueberries