5

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

我试图在本机反应中实现这样的目标: https ://fontawesome.com/how-to-use/on-the-web/styling/stacking-icons

如何做到这一点?

4

3 回答 3

5

您可以通过这样做来实现这一点。使用宽度和高度可以帮助您将视图保持在适当位置并将所有内容对齐到中心,使其看起来像堆叠的图标。在此处输入图像描述

<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

于 2019-08-29T12:12:52.437 回答
4

输出:

在此处输入图像描述

在本例中,我将 FontAwesome 图标“square”和“home”堆叠在一起。要堆叠它们,您需要一个带有position: 'relative'. 然后,您可以将position: 'absolute'zIndex 应用于应该位于另一个图标之上的图标。之后,您可以使用顶部/左侧样式属性来定位图标。

代码:

  <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

于 2019-08-29T05:28:58.273 回答
-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

于 2019-09-12T04:46:53.793 回答