必须在d-pad上单击两次以更改焦点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了必须在d-pad上单击两次以更改焦点相关的知识,希望对你有一定的参考价值。

我正在使用FlatList进行加载和滚动。我遇到一个问题,有时用户必须单击两次(D-pad向下按钮)才能更改焦点。一种将视图带入视口,另一种改变焦点。

<FlatList

        ref=pageRef
        style= flex: 1, width: p(1920) 
        data=getData()
        showsVerticalScrollIndicator=false
        removeClippedSubViews
        onEndReached=getNewPage
        keyExtractor=(item) => item.contentGroupId
        getItemLayout=getItemLayout
        ListFooterComponent=
          <View style= height: p(234)  accessible=false />
        
        renderItem=( item, index ) => (rowRenderer(item, index))
      />

我正在使用getItemLayout来告知行的高度

const getItemLayout = (dat, index) => 
    const lay = 
      length: getDimensions(index).height,
      offset: getDimensions(index).height * index ,
      index
    
    return lay
  

我正在使用TouchableOpacity渲染项目并聚焦它们。

我如何确保项目正确滚动,并且单击(d-pad向下按钮)焦点应更改为下一个TouchableOpacity

答案

您应该将FlatList与keyboardShouldPersistTaps='always'一起使用

以上是关于必须在d-pad上单击两次以更改焦点的主要内容,如果未能解决你的问题,请参考以下文章

在状态更新和样式更改之前,我必须单击我的链接两次

scrollToRowAtIndexPath 在 Top 时必须调用两次

由于文本框失去焦点,按钮需要单击两次

点击两次以突出显示收藏视图中的复选标记

焦点没有移出 RowsSupportFragment

为啥我必须单击两次才能在 Label MouseDown 事件中执行方法