/**
* Basic [iOS] Example for react-native-blur
* https://github.com/react-native-community/react-native-blur
*/
import React, { Component } from 'react';
import {
Image,
SegmentedControlIOS,
StyleSheet,
Switch,
Text,
View,
} from 'react-native';
import { BlurView, VibrancyView } from '@react-native-community/blur';
export default class Basic extends Component {
constructor(props) {
super(props);
this.state = {
showBlurs: true,
blurBlurType: 'light',
blurActiveSegment: 1,
vibrancyBlurType: 'dark',
vibrancyActiveSegment: 2,
};
}
_onBlurChange(event) {
this.setState({blurActiveSegment: event.nativeEvent.selectedSegmentIndex});
}
_onBlurValueChange(value) {
this.setState({blurBlurType: value});
}
_onVibrancyChange(event) {
this.setState({vibrancyActiveSegment: event.nativeEvent.selectedSegmentIndex});
}
_onVibrancyValueChange(value) {
this.setState({vibrancyBlurType: value});
}
renderBlurs() {
const tintColor = this.state.blurBlurType === 'xlight' ? 'black' : 'white';
return (
{/*
BlurView is supported on both iOS and Android.
If you also need to support Android, the BlurView must be
absolutely positioned behind your unblurred views, and it
cannot contain any child views.
*/}
Blur component (iOS)
{this._onBlurChange(event);}}
onValueChange={(value) => {this._onBlurValueChange(value);}}
tintColor={tintColor}
/>
{/*
VibrancyView is only supported on iOS, and must contain child views,
otherwise the vibrancy effect doesn't work.
*/}
Vibrancy component (iOS-only)
{this._onVibrancyChange(event);}}
onValueChange={(value) => {this._onVibrancyValueChange(value);}}
tintColor="white"
/>
);
}
render() {
return (
{ this.state.showBlurs ? this.renderBlurs() : null }
this.setState({showBlurs: value})}
value={this.state.showBlurs} />
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'transparent',
},
blurContainer: {
flex: 1,
backgroundColor: 'transparent',
justifyContent: 'center',
alignItems: 'stretch',
paddingHorizontal: 20,
},
blurView: {
position: 'absolute',
left: 0,
right: 0,
top: 0,
bottom: 0,
},
img: {
position: 'absolute',
left: 0,
right: 0,
top: 0,
bottom: 0,
height: null,
width: null,
},
text: {
fontSize: 20,
fontWeight: 'bold',
textAlign: 'center',
margin: 10,
color: 'white',
},
blurToggle: {
position: 'absolute',
top: 30,
right: 10,
alignItems: 'flex-end',
},
});