【问题标题】:React Native - Android views overlapping on launchReact Native - Android 视图在启动时重叠
【发布时间】:2018-05-28 12:17:33
【问题描述】:

在我的 App.js 中,我目前在渲染函数中有这段代码,它有条件地渲染两个堆栈导航器(React Navigation)。

代码在 iOS 中可以正常工作和渲染。

它也适用于 Android,但由于某种原因,在这两种情况下,它都会显示两个视图在几分之一秒内相互重叠。

有人知道我怎样才能避免这种重叠的观点吗?

constructor(props) {
    super(props);
    this.state = {
        isLoadingComplete: false,
        firstLaunch: null,
    };
}

render() {
    if (!this.state.isLoadingComplete) {
        return (
            <AppLoading
                startAsync={this._loadResourcesAsync}
                onError={this._handleLoadingError}
                onFinish={this._handleFinishLoading}
            />
        );
    } else {
        return !this.state.firstLaunch ? <OnboardingStack /> : <MainStack />;
    }
}

【问题讨论】:

    标签: android react-native react-native-android react-navigation


    【解决方案1】:

    如果您按照以下方式进行渲染,则有条件地可以正常工作。

        render() {
            if (!this.state.isLoadingComplete) {
               return (
                   <AppLoading
                      startAsync={this._loadResourcesAsync}
                      onError={this._handleLoadingError}
                      onFinish={this._handleFinishLoading}
                   />
        );
    }
    return !this.state.firstLaunch ? <OnboardingStack /> : <MainStack />;
    return (
     <View>
      <ActivityIndicator />
     </View>
    )
    

    【讨论】:

    • 谢谢,但不幸的是它给了我同样的结果。它仍然可以看到 Onboarding(几分之一秒),然后 MainStack 被渲染在顶部
    • 它在那几分之一秒内检查 if 条件。所以在这发生之前你可以放 activityIndi​​cator..like just put return()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    相关资源
    最近更新 更多