因为我有一个有 135 个屏幕的应用程序。我知道这对应用程序来说是一个愚蠢的计划,但不幸的是这是要求。因为我们计划将所有屏幕制作为 html,然后将其放入资产中,然后将其读取为字符串并将其加载到两个网络视图中。它应该加载动画。所以我们使用了 2 个 webview。
我不知道这种方法的效率有多高。正如我在大多数博客和论坛中所读到的那样。这会产生很多性能问题。现在我的问题是我试图在 2 个 webviews 中相应地加载 4 个 html 并应用动画到 webview。这 2 个 webview 将采用框架布局。当我这样做时,我会遇到下面列出的许多问题。
- Webview 闪烁。
- 当动画发生时,有时未加载的 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);