【问题标题】:FlatList Touchable opacity not working on AndroidFlatList 可触摸不透明度在 Android 上不起作用
【发布时间】:2019-10-24 10:14:14
【问题描述】:

我有 FlatList 数据,我想按每个数据打开详细视图。它适用于 iOS,但不适用于 Android。

_renderItem = ({item,index}) => { 
        var allcat = [];
        for(let itemIndex = 0; itemIndex < item.data.length; itemIndex++) {
        allcat.push(
        <TouchableOpacity onPress={()=>this.props.navigation.navigate('FlavoursDetails',{itemId: item.data[itemIndex].itemid})}>
            <Text style={styles.SectionListItemStyle}>{item.data[itemIndex].itemname}</Text>
        </TouchableOpacity>
      )
        }
        return (     
          <ScrollView style={{
          flex:1, width:'100%',
          shadowRadius: 4.65,elevation: 10,  borderWidth:1, borderColor:'#ccc', margin:0, padding:0, borderRadius:10,marginTop:30, backgroundColor:'#fff', }}>
           <Text style={styles.SectionHeaderStyle}>{item.title}</Text>
           <TouchableOpacity>
               {allcat}
           </TouchableOpacity>
            </ScrollView>
        )
     }

【问题讨论】:

  • 奇怪,我不知道它是否重要。我将 TouchableOpactiy 更改为适用于 android 的 TouchableHighlight,并保持适用于 ios 的 TouchableOpactiy。它正在工作。

标签: react-native react-native-android


【解决方案1】:

只有一个 TouchableOpacity 就足够了:

return (     
     <ScrollView style={{flex:1, width:'100%', shadowRadius: 4.65,elevation: 10,  borderWidth:1, borderColor:'#ccc', margin:0, padding:0, borderRadius:10,marginTop:30, backgroundColor:'#fff', }}>
         <Text style={styles.SectionHeaderStyle}>{item.title}</Text>
         {allcat}
     </ScrollView>
);

【讨论】:

  • 我想要处理 onPress() 的函数。即我有数组数组,我希望内部数组处理 onPress()。
【解决方案2】:

检查您是否没有使用 react-native-gesture-handler 中的 TouchableOpacity 而不是 react-native。

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 2022-08-14
    • 2023-01-22
    • 2022-01-23
    • 2021-04-05
    • 1970-01-01
    • 2020-07-15
    • 2020-09-30
    • 1970-01-01
    相关资源
    最近更新 更多