Как мне переместить заднюю часть изображения с помощью React Native - PullRequest
0 голосов
/ 15 апреля 2020

Я приложил скриншот проблемы. Кажется, я не могу переместить свою кнопку из-за объекта изображения. Я попробовал zIndex и передвигал Views, но у меня все еще возникла та же проблема. Код, кажется, работает только на IOS, но не на Android.

Ваша помощь будет принята с благодарностью. мой код ниже.

Спасибо.

Снимок экрана проекта

import * as React from 'react';
import { StyleSheet, Image, View } from 'react-native';
import * as ImagePicker from 'expo-image-picker';
import Constants from 'expo-constants';
import * as Permissions from 'expo-permissions';
import { EvilIcons } from '@expo/vector-icons'

export default class ImagePickerExample extends React.Component {
    state = {
        image: null,
    };

    render() {
        let { image } = this.state;

        return (
            <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
                <View style={styles.emptyProfile}>
                    {image && <Image source={{ uri: image }} style={styles.profile} />}
                </View>
                <View style={{ marginLeft: 70, justifyContent: 'center', bottom: 25 }}>
                    <View style={styles.camera}>
                        <EvilIcons name='camera' size={35} color='#fff' onPress={this._pickImage} />
                    </View>
                </View>
            </View>
        );
    }

    componentDidMount() {
        this.getPermissionAsync();
    }
    getPermissionAsync = async () => {
        if (Constants.platform.ios) {
            const { status } = await Permissions.askAsync(Permissions.CAMERA_ROLL);
            if (status !== 'granted') {
                alert('Sorry, we need camera roll permissions to make this work!');
            }
        }
    };

    _pickImage = async () => {
        try {
            let result = await ImagePicker.launchImageLibraryAsync({
                mediaTypes: ImagePicker.MediaTypeOptions.All,
                allowsEditing: true,
                aspect: [4, 4],
                quality: 1,
            });
            if (!result.cancelled) {
                this.setState({ image: result.uri });
            }

            console.log(result);
        } catch (E) {
            console.log(E);
        }
    };
}

const styles = StyleSheet.create({
    camera: {
        backgroundColor: '#fd4336',
        height: 50,
        width: 50,
        borderRadius: 25,
        justifyContent: 'center',
        alignItems: 'center',
        position: 'absolute',
    },
    profile: {
        width: 190,
        height: 190,
        borderRadius: 100,
        justifyContent: 'center',
        alignItems: 'center',
    },
    emptyProfile: {
        width: 200,
        height: 200,
        borderRadius: 100,
        backgroundColor: '#c1b78d',
        borderWidth: 5,
        borderColor: '#fff',
        shadowColor: 'black',
        shadowOffset: { width: 0, height: 3 },
        shadowRadius: 3,
        shadowOpacity: 0.3,
        elevation: 5
    }

})

SCREENSHOT

1 Ответ

0 голосов
/ 19 апреля 2020

Хорошо, мне удалось это выяснить! оборачивая другую View

 <View style={styles.emptyProfile}>
                {image && <Image source={{ uri: image }} style={styles.profile} />}
                <View style={{ left: 140, position: 'absolute', bottom: 50 }} >
                    <View style={styles.camera}>
                        <EvilIcons name='camera' size={35} color='#fff' onPress={this._pickImage} />
                    </View>
                </View>
            </View>
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...