Реагировать Родной фокус не изменился в tvOS

В настоящее время я занимаюсь разработкой приложения React Native для телевизионной платформы и могу воспроизводить видео по телевизору.

Я добавил реагирующий родной ящик в компоненте " Видеоплеер" и могу открывать / закрывать ящик, но не могу изменить фокус внутри ящика.

Вот код ящика:

render() {
        return (
            <Container hasTVPreferredFocus={true}>
                <Content                    
                    bounces={false}
                    style={{ flex: 1, backgroundColor: '#fff', top: -1 }}
                >
                    <View style={styles.container}>
                        <TouchableHighlight onPress={() => {this.setState({ selected: 'play' });}}>
                    <View style={{ backgroundColor: this.state.selected === 'play'? '#fbd2c1' : '#FFFFFF' , padding: 10, borderRadius: 5 }}>
                        <Image style={styles.image} source={require('./images/play.png')} />
                    </View>
                    </TouchableHighlight>                        

                    <TouchableOpacity onPress={() => {this.setState({ selected: 'time' });}}>
                    <View style={{ backgroundColor: this.state.selected === 'time'? '#fbd2c1' : '#FFFFFF' , padding: 10, borderRadius: 5 }}>
                        <Image style={styles.image} source={require('./images/clock.png')} />
                    </View>
                    </TouchableOpacity>

                    <TouchableOpacity onPress={() => {this.setState({ selected: 'user' });}}>
                        <View style={{ backgroundColor: this.state.selected === 'user'? '#fbd2c1' : '#FFFFFF' , padding: 10, borderRadius: 5 }}>
                            <Image style={styles.image} source={require('./images/user.png')} />
                        </View>
                    </TouchableOpacity>

                    <TouchableOpacity onPress={() => {this.setState({ selected: 'resolution' });}}>
                    <View style={{ backgroundColor: this.state.selected === 'resolution' ? '#fbd2c1' : '#FFFFFF' , padding: 10, borderRadius: 5 }}>
                        <Image style={styles.image} source={require('./images/computer.png')} />
                    </View>
                    </TouchableOpacity>
                </View>
                { this.renderUI() }
            </Content>
        </Container>
    );
}

Благодарю.

0 ответов

Чтобы решить эту проблему, я предлагаю вам усилить фокус и посмотреть, работает ли это так. Если это работает, проблема в том, как вы используете свойTouchableHighlight. Я бы подумал о том, чтобы заставить изменить фокус так:

hasTVPreferredFocus={true}
        onPress={() => {}}

(Вы должны вставить это в тег элемента TouchableHighlight)

Другие вопросы по тегам