【问题标题】:React-native-paper Menu is hiding behind other elements despite use of zIndex. How do i bring the element on top?尽管使用了 zIndex,但 React-native-paper 菜单隐藏在其他元素后面。我如何将元素置于顶部?
【发布时间】:2021-03-18 17:56:35
【问题描述】:

我正在使用来自react-native-paperMenu 组件作为modal-header 上的选项菜单。

下面是模态的截图:

包含Menu 的父标签具有兄弟元素(标题下方的内容)。 似乎由于这种层次结构,菜单正在其他元素下呈现。 我尝试通过分配possition:"absolute", zIndex: 100 来覆盖元素的重叠。 zIndex 对其重叠的方式没有影响。我尝试将 zIndex 从 1 更改为 1500,但它也没有效果。

以下是菜单组件包装器(ModalOptions)的代码:

const ModalOptions = () => {
  const [visible, setVisible] = React.useState(false);
  const openMenu = () => setVisible(true);
  const closeMenu = () => setVisible(false);

  return (
    <Provider>
      <View>
        <Menu
          style={{ backgroundColor: "#222", borderWidth: 2, top:150, left:-100 , position: 'absolute', zIndex:100 }}
          visible={visible}
          onDismiss={closeMenu}
          anchor={
            <TouchableOpacity onPress={openMenu}>
              <ThreeDotIcon size={35} color={colors.darkGrey} />
            </TouchableOpacity>
          }>
          ...
        </Menu>
      </View>
    </Provider>
  );
};

我想我没有正确使用 zIndex... 如果是这样,我应该如何使用它?

如果没有,还有其他方法可以完成吗?

或者我可能需要重新格式化代码以增加菜单的层次结构 但我真的不喜欢这样。

【问题讨论】:

    标签: javascript css reactjs react-native react-native-paper


    【解决方案1】:

    您可以使用 View 来包装带有 style={{zIndex: 100}} 的超大提供程序,如下所示

    <View style={{zIndex: 100}}>
      <Provider>
          <View>
            <Menu
              style={{ backgroundColor: "#222", borderWidth: 2, top:150, left:-100 , position: 'absolute', zIndex:100 }}
              visible={visible}
              onDismiss={closeMenu}
              anchor={
                <TouchableOpacity onPress={openMenu}>
                  <ThreeDotIcon size={35} color={colors.darkGrey} />
                </TouchableOpacity>
              }>
              ...
            </Menu>
          </View>
        </Provider>
    </View>
    

    【讨论】:

    • 原来问题出在使用 zIndex 上。 zIndex 在 IOS 上按预期工作。但是为了在 Android 中达到同样的效果,我们需要增加海拔而不是 zIndex。
    猜你喜欢
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 2015-12-08
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多