React Native响应式屏幕旋转设计

w9apscun  于 2023-05-01  发布在  React
关注(0)|答案(1)|浏览(168)

我正在使用React Native创建iOS和Android应用程序。该应用程序包含响应式设计,因此它适合Android和iOS智能手机中的所有屏幕尺寸。但是当用户旋转手机时,UI就会变得混乱,在一些手机上它会分裂成一半的屏幕,一半的屏幕是白色的。不知道确切的问题,它在小型和大型设备上都能完美工作,但在屏幕旋转上有这些问题,是否需要专门为屏幕旋转响应设计做些什么?
任何帮助都将非常感激!

wgx48brx

wgx48brx1#

你可以尝试一个名为react-native-responsive-screen的npm包
这允许在旋转时响应屏幕。这里有一个例子

import {
  widthPercentageToDP as wp,
  heightPercentageToDP as hp,
  listenOrientationChange as lor,
  removeOrientationListener as rol
} from 'react-native-responsive-screen';

class Login extends Component {
  componentDidMount() {
    lor(this);
  }
  
  componentWillUnmount() {
    rol();
  }

  render() {
    const styles = StyleSheet.create({
      container: { flex: 1 },
      textWrapper: {
        height: hp('70%'),
        width: wp('80%')
      },
      myText: { fontSize: hp('5%') }
    });
  
    return (
      <View style={styles.container}>
        <View style={styles.textWrapper}>
          <Text style={styles.myText}>Login</Text>
        </View>
      </View>
    );
  }
}

export default Login;

你必须把样式放在渲染中,这样它才能重新计算。
或者,如果你使用的是expo,你可以用expo-screen-orientation来检测屏幕变化。

相关问题