React Native中ActivityIndicator在iOS正常但Android不旋转求助
我之前开发React Native应用时也碰到过一模一样的情况——iOS上ActivityIndicator转得好好的,到Android就变成了静态图标。结合你的代码,给你几个实用的排查和修复方向:
检查Android主题配置
Android的ActivityIndicator依赖系统主题的动画支持,如果你的App主题禁用了动画或者使用了不兼容的主题,就会出现静态图标的问题。打开android/app/src/main/res/values/styles.xml,确保你的AppTheme继承自支持动画的主题,比如:<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"> <!-- 其他配置 --> </style>同时要避免在主题中添加
android:windowDisablePreview这类会禁用窗口动画的属性。显式指定颜色属性
有时候Android上ActivityIndicator的默认颜色和父View背景色过于接近,看起来像是没动(虽然你说的是静态图片,但还是可以排除这个可能性)。给ActivityIndicator加上color属性,确保动画元素清晰可见:<ActivityIndicator size="small" animating={true} color="#333" />调整父View的布局属性
你的父View设置了borderRadius:30,在Android上,父View的overflow默认是visible,有可能会裁剪ActivityIndicator的动画区域。试试给父View添加overflow: 'hidden'属性,同时确认父View的尺寸足够容纳加载动画:<View style={{ marginLeft: 0, width: 60, height: 60, borderRadius: 30, justifyContent: "center", alignItems: "center", backgroundColor: '#eee', borderColor: "#fff", borderWidth: 1, overflow: 'hidden' // 添加这个属性 }}> <ActivityIndicator size="small" animating={true} color="#333" /> </View>检查React Native版本兼容性
某些旧版本的React Native(比如0.6x系列的部分版本)在Android平台上的ActivityIndicator存在动画bug。如果以上方法都无效,尝试升级到React Native的稳定版本,通常能解决这类底层组件的兼容性问题。
如果所有官方组件的修复方法都不生效,你也可以考虑用Animated组件自定义一个简单的旋转动画作为临时替代方案,但优先推荐修复官方组件的问题。
内容的提问来源于stack exchange,提问作者Wathsala De Silva

