【发布时间】:2020-03-31 21:04:32
【问题描述】:
它不会在 moto g4 和 samsung a50 等一些 android 中呈现!它可以在某些 Android 设备和 iOS 中完美呈现。当用户尝试打开应用程序时,图像未按预期呈现。
React Native 版本:
System:
OS: macOS 10.15.1
CPU: (8) x64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
Memory: 943.08 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 12.12.0 - /usr/local/bin/node
Yarn: 1.13.0 - /usr/local/bin/yarn
npm: 6.11.3 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.1, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
Android SDK:
API Levels: 16, 23, 24, 25, 26, 27, 28
Build Tools: 23.0.1, 25.0.0, 25.0.2, 26.0.0, 26.0.1, 26.0.2, 27.0.3, 28.0.2, 28.0.3
System Images: android-16 | Intel x86 Atom, android-16 | Google APIs Intel x86 Atom, android-22 | Google APIs Intel x86 Atom, android-23 | Google APIs Intel x86 Atom, android-24 | Google APIs Intel x86 Atom, android-25 | Google APIs Intel x86 Atom, android-26 | Google APIs Intel x86 Atom, android-27 | Google APIs Intel x86 Atom
Android NDK: 16.0.4293906-beta1
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5900203
Xcode: 11.1/11A1027 - /usr/bin/xcodebuild
npmPackages:
react: 16.9.0 => 16.9.0
react-native: 0.61.2 => 0.61.2
npmGlobalPackages:
create-react-native-app: 2.0.2
react-native-cli: 2.0.1
react-native-git-upgrade: 0.2.7
react-native-progress-circle: 2.0.0
重现步骤(我的代码)
<View style={{flex:1,width:'100%',height:'100%'}}>
<View style={{flex:1, height:'100%',backgroundColor:'#fff', paddingBottom:0}}>
<ScrollView removeClippedSubviews={true} style={{padding:10,flex:1}} refreshControl={(<RefreshControl refreshing={this.state.refreshing} onRefresh={this._onRefresh.bind(this)}/>)}>
<View style={{marginBottom:30}}>
<Text style={{fontWeight:'bold',color:'#000',fontSize:24}}>{feed.title}</Text>
<FlatList
removeClippedSubviews={true}
style={{marginTop:10,flexDirection:'column'}}
data={feed.content}
horizontal={true}
keyExtractor={(item,index) => index}
renderItem={({item,index}) => {
return (
<TouchableOpacity style={{marginBottom:15,flexBasis: '100%',flex:1}} onPress={()=>{this.contentOnPress(item)}}>
<View style={{alignItems: 'center',width:width,height:this.height*0.6,borderRadius:5}}>
<Image resizeMode={'cover'} style={{width:width, height:(this.height*0.6), borderRadius:5,borderWidth:1,borderColor:'#ccc'}} resizeMode={'cover'} source={(item.thumb ? {uri: item.thumb.replace('upload/','upload/q_auto,w_auto/')} : require('./../../assets/img/profile-pic.png'))}/>
</View>
<View>
<Text style={{fontWeight:'bold',color:'#000'}} numberOfLines={1}>{item.header}</Text>
<Text style={{color:'#000'}} numberOfLines={1}>{item.title}</Text>
</View>
</TouchableOpacity>
)
}} />
</View>
</ScrollView>
</View>
</View>
【问题讨论】:
-
如果在snack.expo.io重新生成你的问题就好了
-
尝试给
<Image>组件一些静态高度。如果可行,稍后您可以轻松调试它。 -
@Ravi ,图片确实有高度
-
你能去掉 resizeMode={'cover'} 看看这是否会使图像出现在所有设备上吗?在 android 上使用 Flatlists 时,我遇到了 resizeMode 封面问题。
-
@needsleep 它不能解决问题
标签: android image react-native render react-native-flatlist