gpt4 book ai didi

reactjs - Android TV 中焦点可触摸元素的事件处理

转载 作者:行者123 更新时间:2023-12-03 14:13:01 25 4
gpt4 key购买 nike

我正在使用 React-Native 构建 AndroidTV 应用程序。

我一直指的是official docs (在 Android 选项卡中)。

我尝试在元素上使用 touchableHandleActivePressIn 方法:TouchableHighlight/TouchableOpacity

class MyComponent extends Component {
myMethod = () => {
console.log('Working');
}

render() {
return (
<View>
<TouchableOpacity touchableHandleActivePressIn={this.myMethod}>
<Text>Placeholder</Text>
</TouchableOpacity>
</View>
)
}
}

不幸的是,这不起作用。当我从另一个元素获得焦点时(我确信当我通过更改样式看到时它们会获得焦点)。

在此示例中,我没有添加任何占位符按钮来更改焦点,但该元素不起作用。

我在文档或 Google 搜索中找不到此方法的任何实现。
有人知道解决办法吗?

最佳答案

我在react-native源代码中找到了解决方案。
如果您想使用 TouchableHighlightTouchableOpacity 组件构建 Android TV 应用程序,您应该使用以下方法 touchableHandleActivePressIntouchableHandleActivePressOuttouchableHandlePress 像这样:

class MyComponent extends Component {
myMethod = () => {
console.log('Working');
}

render() {
return (
<View>
<TouchableOpacity touchableHandleActivePressIn onPressIn={this.myMethod}>
<Text>Placeholder</Text>
</TouchableOpacity>
</View>
)
}
}

AndroidTV 组件方法处理程序必须声明为 prop,并且必须分别声明要调用的方法:
onPressIn 用于 touchableHandleActivePressIn
onPressOut 用于 touchableHandleActivePressOut
以及 touchableHandlePress 的标准 onPress

希望这对任何人都有帮助,由于缺乏官方文档,我花了两天时间才弄清楚。

关于reactjs - Android TV 中焦点可触摸元素的事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51427556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com