代码之家  ›  专栏  ›  技术社区  ›  reidisaki

应对本地平面列表和idtv焦点问题

  •  3
  • reidisaki  · 技术社区  · 8 年前

    环境

    反应:16.3.1 本机反应:0.55.3

    说明

    我在React Native上实现了一个多维列表视图,其中包含一些水平的平面列表一切都显示正确但是,当我将焦点一直移动到行的末尾时,当我尝试向右移动(已经在行的末尾)时,焦点将自动转到下面的行。

    有没有解决办法来防止这种情况,并确保当焦点到达平面列表的末端时会停止?

    复制步骤

    垂直渲染平面列表,每行都是另一个水平平面列表。滚动到行的末尾,尝试向右移动,焦点将向下移动到下一行。

    预期行为预期行为应该是无,因为我们在当前行的末尾。

    如果在行的后端,实际行为焦点将转到下一行

    我已经搜索了文档,这是firetv/androidtv的一个特殊问题。

    与此相同的问题: https://github.com/facebook/react-native/issues/20100 但窃听器已经“关闭”

    示例代码: 导入React,{Component}来自'React'; 从“react native”导入{View,Text,touchablecompacity,ScrollView};

    导出默认类应用程序扩展组件{ 渲染(){ 常量数据=[]; for(设i=0;i<10;i++) 数据推送(i);

    return (
      <View>
        {[1, 2].map(() => (
          <ScrollView horizontal style={{height: 210}}>
            {data.map(i => (
              <TouchableOpacity key={i}>
                <View
                  style={{
                    backgroundColor: 'grey',
                    width: 200,
                    height: 200,
                  }}
                >
                  <Text style={{fontSize: 60}}>{i}</Text>
                </View>
              </TouchableOpacity>
            ))}
          </ScrollView>
        ))}
      </View>
    );
    

    }

    enter image description here

    1 回复  |  直到 8 年前
        1
  •  3
  •   reidisaki    7 年前

    目前我发现这是不可能的tvOS或android或firetv除非我弄错了,否则我假设只有很少的人试图创建connectedTv应用程序,或者如果他们是,他们有一个非常简单的界面