我有一个动画的SafeArea视图,里面有两个按钮,视图有位置:绝对。当我点击按钮时,它会穿过它,并点击de按钮后面的元素。我目前正在使用zIndex和elevation,并尝试了许多解决堆栈溢出的方法,例如:
如果在父容器中使用position:relative,则该按钮可以工作。
这是我的代码,按钮组件是样式化的TouchableOpacity,我还尝试移除包装,将主容器更改为TouchableOpacity而不是SafeAreaView,但没有任何结果。。。
return (
<Wrapper
isAndroid={Platform.OS === 'android'}
style={{
transform: [
{
translateY: translateValue.interpolate({
inputRange: [0, 1],
outputRange: [500, 0]
})
}
]
}}>
<ButtonsWrapper>
<ActionButton
inverted
secondary
onPress={() => {
console.log('teste');
}}
accessible
accessibilityLabel="Continuar com Facebook">
<Icon name="edit" secondary size={20} />
<BtnText bold noPadding secondary>
Editar
</BtnText>
</ActionButton>
<ActionButton
inverted
primary
onPress={() => {
console.log('teste');
}}
accessible
accessibilityLabel="Continuar com Facebook">
<Icon name="x-circle" primary size={20} />
<BtnText bold noPadding primary>
Encerrar
</BtnText>
</ActionButton>
</ButtonsWrapper>
</Wrapper>
);
});
const Wrapper = Animated.createAnimatedComponent(styled.SafeAreaView`
width: 100%;
border-top-width: 1px;
border-top-color: ${({ theme: { border } }) => border};
background: ${({ theme: { background } }) => background};
z-index: 1;
position: absolute;
flex-direction: row;
justify-content: space-between;
align-items: center;
bottom: 0;
left: 0;
${({ isAndroid }) => isAndroid && 'elevation: 1'}
height: 150px;
`);
const ButtonsWrapper = styled.View`
flex: 1;
align-items: center;
justify-content: center;
padding: 10px;
`;
const ActionButton = styled(Button)``;
const BtnText = styled(Text)`
padding-right: 20px;
flex: 1;
text-align: center;
${({ noPadding }) =>
noPadding &&
`
padding: 0px;
`}
`;
我刚刚在我的应用程序中发现了问题。我只是改变了组件的顺序。警报组件放在反导航容器之前,放在按预期工作的导航容器之后。
之前:
export const App = () => (
<>
<StatusBar backgroundColor={theme.background} barStyle="dark-content" />
<ThemeProvider theme={theme}>
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<Alert />
<Socket>
<NavigationContainer>
{...}
</NavigationContainer>
</Socket>
</PersistGate>
</Provider>
</ThemeProvider>
</>
);
问题内容: 我打开控制台(chrome \ firefox)并运行以下行: 内容未包含在#popupFrame中,这使它变得很奇怪。 目标是创建像firefox这样的警告框 问题答案: 第二个div是(默认值),因此z-index不适用于它。 您需要定位(将位置属性设置为,而不是在这种情况下可能需要的其他位置)要分配给的任何内容。
问题内容: 假设您将以下CSS应用于div标签 左边距和右边距无效 但是,如果您有亲戚,它可以正常工作,即 这是为什么?我只想将元素居中 有人可以解释为什么将页边距设置为绝对位置无效吗? 问题答案: 编辑:这个答案曾经声称不可能用来使绝对定位的元素居中,但这根本不是事实。因为这是最受好评和接受的答案,所以我想我只是将其更改为正确。 当您将以下CSS应用于元素时 然后为元素提供固定的宽度和高度,例如
问题内容: HTML CSS 问题 文本应放在我的“表格单元”的中间。一切正常,直到我添加“ position:absolute”。现在它不能再将我的内容放在中间了吗?为什么不?它仍然知道我的身高和宽度,因为我在CSS中进行了设置。 有什么聪明的解决方法吗? 问题答案: 一切正常,直到我添加“ position:absolute”。现在它不能再将我的内容放在中间了吗?为什么不? 部队,在这里阅读第
问题内容: 我在另一个div内有两个div,我想使用css将一个子div放在父div的右上角,另一个子div放在父div的底下。即,我想对两个子div使用绝对定位,但是将它们相对于父div而不是页面定位。我怎样才能做到这一点? 范例html: 问题答案: 这工作,因为手段类似“使用,,,来定位自己相对于谁拥有最近的祖先或”。 因此,我们使have 和子代都有,然后使用和定位子代。
问题内容: 我有3个要素。 第一个更大(包装)并具有 第2个相对于第1个相对位置绝对定位(并包含在第1个中) 第3个包含在第2个中,并且也具有绝对定位。 为什么第3个位置相对于第2个绝对位置(这也是第1个位置的绝对位置)而不是相对位置的第一个位置? 因为3rd 是绝对定位到2nd的绝对定位。 问题答案: 因为就像重置孩子的相对位置一样。 这是无法解决的-如果您希望第三个相对于第一个绝对定位,则必须
问题内容: 我正在尝试将ID为“ absPos”的div相对于其父div放在绝对位置。但它不起作用,div放置在页面的左上角。 我的代码示例如下 您能帮我解决这个问题吗?在我的实际情况下,我必须放置背景图像,而不是红色背景色。 问候 问题答案: 绝对定位的元素从其最近的祖先开始定位。在您的代码中,祖先都不是“定位”元素,因此div从body元素(即)偏移。 解决方案是将其应用于父div,这迫使它成