Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 340|回复: 0

react-native-splash-screen android 启动页实现,以及遇到问题解决方案

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-5 10:15:34 | 显示全部楼层 |阅读模式

    实现启动屏的三个步骤

    1、在APP启动的时候显示;

    2、在js bundle加载并渲染完成后消失;

    3、显示的内容可以通过 layout xml 进行修改;

    第一步:下载安装

    yarn add react-native-splash-screen

    第二步修改android文件

    1、在android/settings.gradle文件中加入(通常yarn add安装完,这些内容会自动生成,如果没有,可以手动添加)

    include ':react-native-splash-screen'   
    project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android')

    2、在android/app/build.gradle文件中加入(通常yarn add安装完,这些内容会自动生成,如果没有,可以手动添加)

    ...
    dependencies {
        ...
        compile project(':react-native-splash-screen')
    }

    3、修改android\app\src\main\java\com\studyimooc_gp\MainApplication.java(通常yarn add安装完,这些内容会自动生成,如果没有,可以手动添加)

    // react-native-splash-screen >= 0.3.1
    import org.devio.rn.splashscreen.SplashScreenReactPackage;
    // react-native-splash-screen < 0.3.1
    import com.cboy.rn.splashscreen.SplashScreenReactPackage;
    
    public class MainApplication extends Application implements ReactApplication {
    
        private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
            @Override
            protected boolean getUseDeveloperSupport() {
                return BuildConfig.DEBUG;
            }
    
            @Override
            protected List<ReactPackage> getPackages() {
                return Arrays.<ReactPackage>asList(
                        new MainReactPackage(),
                new SplashScreenReactPackage()  //加入这一行
                );
            }
        };
    
        @Override
        public ReactNativeHost getReactNativeHost() {
            return mReactNativeHost;
        }
    }

    4、修改android\app\src\main\java\com\studyimooc_gp\MainActivity.java(重点来了)

     

    package com.studyimooc_gp;
    
    import android.content.pm.PackageManager;
    import android.os.Bundle;
    import android.support.annotation.NonNull;
    import org.devio.rn.splashscreen.SplashScreen; // 1.导入启动屏包
    import android.support.v4.app.ActivityCompat;
    import android.widget.Toast;
    
    import com.facebook.react.ReactActivity;
    
    public class MainActivity extends ReactActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            SplashScreen.show(this); // 2. 显示启动方法
            super.onCreate(savedInstanceState);
            ActivityCompat.requestPermissions(this, new String[]{android
            .Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
        }

     

    5、新建android\app\src\main\res\layout 文件,并在文件夹中新建launch_screen.xml文件,内容如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/launch_screen">
    </LinearLayout>

    6、新建android\app\src\main\res\drawable-hdpi文件夹,把启动页图片放进去,命名为launch_screen.png

    7、如果你只做了以上步骤,你的程序会闪屏后退出,所以你需要在android\app\src\main\res\values\colors.xml文件中加入

    <color name="primary_dark">#660B0B0B</color>

    做了以上步骤android启动屏就完成了

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-5 21:32 , Processed in 0.065205 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表