我有一个带有全长屏幕的滚动视图。有一个标志我需要在底部显示按钮。 我使用 Animated.View 在底部显示按钮。 当按钮可见时无法更改滚动视图高度。 如果我尝试使用 marginBottom 进行管理,则会在获得带动画的按钮之前显示不需要的白色。
在这里,我需要动态更改滚动视图高度或透明不需要的白色背景。
以下是代码段:
const modalY = new Animated.Value(Dimensions.get('window').height);
openModal = () => {
Animated.timing(modalY, {
duration: 500,
toValue: Dimensions.get('window').height - 60
}).start();
}
closeModal = () => {
Animated.timing(modalY, {
duration: 300,
toValue: Dimensions.get('window').height
}).start();
}
showButton = () => {
const animationView = <Animated.View style={[ {width: Dimensions.get('window').width,position: 'absolute'}, { transform: [{translateY: modalY}] }]}>
<TouchableHighlight with title height 60/>
</Animated.View>;
return (
animationView
);
};
const marBottom = buttonTitle ? 60 : 0;
这里buttonTitle是标志
<View>
<ScrollView contentContainerStyle={{ paddingTop: top }} style={{marginBottom:marBottom}}>
<View style={ [styles.itemscontainer]}>
{ this.myItems()}
</View>
</ScrollView>
{ this.showButton() }
{(buttonTitle) ? this.openModal() : this.closeModal()}
</View>