Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在两个webview中加载多个HTML时出现问题,是否闪烁?_Android_Html_Webview_Transition_Assets - Fatal编程技术网

Android 在两个webview中加载多个HTML时出现问题,是否闪烁?

Android 在两个webview中加载多个HTML时出现问题,是否闪烁?,android,html,webview,transition,assets,Android,Html,Webview,Transition,Assets,因为我有一个有135个屏幕的应用程序。我知道对于一个应用程序来说,这是一个愚蠢的计划,但不幸的是,这是一个要求。因为我们计划将所有屏幕制作为html,然后将其放入资产中,然后将其读取为字符串并加载到两个Web视图中。它应该加载动画。所以我们使用2个网络视图 我不知道这种方法的效率有多高。正如我在大多数博客和论坛中所读到的那样。这会造成很多性能问题。现在我的问题是,我试图在两个网络视图中相应地加载4个html,并将动画应用于网络视图。这2个网络视图将在一个框架布局。当我做同样的事情,我会得到下面列

因为我有一个有135个屏幕的应用程序。我知道对于一个应用程序来说,这是一个愚蠢的计划,但不幸的是,这是一个要求。因为我们计划将所有屏幕制作为html,然后将其放入资产中,然后将其读取为字符串并加载到两个Web视图中。它应该加载动画。所以我们使用2个网络视图

我不知道这种方法的效率有多高。正如我在大多数博客和论坛中所读到的那样。这会造成很多性能问题。现在我的问题是,我试图在两个网络视图中相应地加载4个html,并将动画应用于网络视图。这2个网络视图将在一个框架布局。当我做同样的事情,我会得到下面列出的许多问题

  • Webview正在闪烁
  • 当动画发生时,卸载的html有时会显示在之前加载的html之间
  • 有时页面没有加载,只有在屏幕上发生任何用户交互时才会显示
  • 有时,在加载两个页面之间会显示一个白色页面
  • 闪烁和白色页面是我面临的主要问题。有人能告诉我如何解决这些问题吗?我真的很难做到这一点。如果这不是加载135 html的有效方法,让我知道最好的方法。下面提到的一些代码只是为了说明我是如何解决这些问题的…提前谢谢

    wv1.loadDataWithBaseURL("file:///android_asset/",
                            readFromAssests("rechercherunjob.html"), "text/html",
                            "UTF-8", null);
    
                    anim_right_to_left_in = AnimationUtils.loadAnimation(getBaseContext(), R.anim.right_to_left_in);
                    anim_left_to_right_out = AnimationUtils.loadAnimation(getBaseContext(), R.anim.right_to_left_out);
    
                    anim_left_to_right_out.setAnimationListener(new AnimationListener() {
                                @Override
                                public void onAnimationStart(Animation animation) {
                                    wv1.bringToFront();
                                }
    
                                @Override
                                public void onAnimationRepeat(Animation animation){
                                }
    
                                @Override
                                public void onAnimationEnd(Animation animation) {
                                    runOnUiThread(new Runnable() {
                                        public void run() {
                                            Toast.makeText(LoadHTMLActivity.this,
                                                    "anim end 2",
                                                    Toast.LENGTH_SHORT).show();
                                        }
                                    });
                                    wv2.loadDataWithBaseURL(
                                            "file:///android_asset/",
                                            readFromAssests("blank.html"),
                                            "text/html", "UTF-8", null);
                                }
                            });
    
    
                    final Handler Handler1 = new Handler();
                    Runnable mUpdateTimeTask1 = new Runnable() {
                        public void run() {
    
                            wv1.setAnimation(anim_right_to_left_in);
                            wv2.setAnimation(anim_left_to_right_out);
                        }
                    };
                    Handler1.postDelayed(mUpdateTimeTask1, 1000);
    

    我认为在您的情况下,最好使用
    片段
    并为它们设置自定义动画转换,而不要使用多个
    网络视图
    。如果您试图将所有125个HTML完全保留在内存中,您的应用程序将永远无法正常工作

    现在您使用的是
    片段
    ,而不是
    网络视图