首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用React Native tvOS / Android TV正确处理导航栈

如何使用React Native tvOS / Android TV正确处理导航栈
EN

Stack Overflow用户
提问于 2019-09-18 05:22:05
回答 2查看 992关注 0票数 2

我正在使用react-native-tvos构建一个tvOS和亚马逊FireStick应用程序。然而,我遇到了一个关于反应导航的问题。添加到导航堆栈的屏幕在后台仍处于活动状态。这会导致焦点引擎变得混乱。使用遥控器上的方向垫,焦点将在堆叠底部的不可见屏幕和当前显示的屏幕之间移动。我正在寻找关于如何解决这个问题的建议。

我读到过其他人在使用react导航和react本地导航时遇到过这个问题。但我没有找到解决方案。

EN

回答 2

Stack Overflow用户

发布于 2020-02-14 18:05:39

如果您使用的是react-native-tvos版本,请在其存储库中使用this issue

至于临时解决方案,我可以建议你自己隐藏你的内容。看看我的实现:

代码语言:javascript
复制
import React from "react";
import { View } from "react-native";

// That's a HOC to know when the current Screen is focused
import withScreenFocusing from "../components/HOC/WithScreenFocusing";

const FocusHider = ({ isFocused, children }) => {
  return (
    <View style={{ display: isFocused ? "flex" : "none" }}>{children}</View>
  );
};

export default withScreenFocusing(FocusHider);

然后像这样使用它:

代码语言:javascript
复制
 <FocusHider>
   <YourAwesomeContent />
 </FocusHider>

以防万一,我提到的HOC只是来自@react-navigation/nativeuseIsFocused

票数 1
EN

Stack Overflow用户

发布于 2020-05-18 18:26:59

我一直在从事AndroidTV项目的工作,并且遇到了以下问题

react-本地导航也是如此。当我导航到其他屏幕时,可触摸组件的焦点被忽略。

我设法解决了这个问题,添加了react-native-screens包( react-native-navigation将其定义为一个必须依赖项),然后在我的app.js中添加了:

代码语言:javascript
复制
import {enableScreens} from 'react-native-screens';
enableScreens();

然后,焦点已经如预期的那样返回工作。

我希望它能为你工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57982224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档