Android WebView 跳转动画和后退动画的处理

开始写webview跳转动画,当一个webview的时候,跳转动画总是效果不好。所以就采用两个webview来跳转实现。
但当两个跳转实现后,后退的时候,两个webview之间的切换又总是出现问题。当总的跳到第4页以前时,都是没有问题的,但到第5页时,后退到4时,4只有goBack();的话,就直接显示到第二页,也就是第二个webview goBack();一次后的页面,为了把goback后的页面隐藏,画了大功夫啊,在各方法里setVisibility(View.INVISIBLE);都不行,没办法,只有写个测试,看在哪个方法里隐藏它。
代码如下:

public class GoBackTestActivity extends Activity {
    private FrameLayout frameLayouttest;
    private WebView webView;
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webview);
        findView();
        initView();
    }

    private void findView() {
        frameLayouttest= (FrameLayout) findViewById(R.id.frament_layout_test);
        webView= (WebView) findViewById(R.id.webView_view);
        btn= (Button) findViewById(R.id.back_btn);
        WebSettings webSettings=webView.getSettings();
        SettingsWebViewUtils.setSettings(GoBackTestActivity.this,webSettings);
        webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                LogUtils.LogUtils("shouldOverrideUrlLoading.........................");
                return super.shouldOverrideUrlLoading(view, url);
            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                LogUtils.LogUtils("onPageStarted..........................");
                super.onPageStarted(view, url, favicon);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
               int s=SharedPreferencesUtils.getToken(GoBackTestActivity.this,"test");
                if (s==555){
                    frameLayouttest.setVisibility(View.INVISIBLE);
                }
                LogUtils.LogUtils("onPageFinished..........................");
                super.onPageFinished(view, url);
            }

            @Override
            public void onLoadResource(WebView view, String url) {
                LogUtils.LogUtils("onLoadResource........................");
                super.onLoadResource(view, url);
            }
        });
        webView.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                LogUtils.LogUtils("onProgressChanged.................");
                super.onProgressChanged(view, newProgress);
            }
        });
    }

    private void initView() {
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                webView.loadUrl(API.MAIN_URL);
            }
        });
    }

    @Override
    public void onBackPressed() {
        SharedPreferencesUtils.save(GoBackTestActivity.this,555,"test");
        webView.goBack();
    }
}

输出:
12-15 16:17:28.946 3775-3775/com.bugly.upgrade.demo D/JunLog: onProgressChanged……………..
12-15 16:17:29.095 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………
12-15 16:17:29.247 3775-3775/com.bugly.upgrade.demo D/JunLog: onProgressChanged……………..
12-15 16:17:29.278 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………
12-15 16:17:29.284 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………
12-15 16:17:29.289 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………
12-15 16:17:29.308 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………
12-15 16:17:29.313 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………
12-15 16:17:29.316 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………
12-15 16:17:29.319 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………
12-15 16:17:29.322 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………
12-15 16:17:30.216 3775-3775/com.bugly.upgrade.demo D/JunLog: onProgressChanged……………..
12-15 16:17:30.292 3775-3775/com.bugly.upgrade.demo D/JunLog: onProgressChanged……………..
12-15 16:17:30.321 3775-3775/com.bugly.upgrade.demo D/JunLog: onPageFinished……………………..
12-15 16:17:30.417 3775-3775/com.bugly.upgrade.demo D/JunLog: onLoadResource……………………

发现了这个。
然后设置setVisibility(View.INVISIBLE);隐藏了

到这里也许思想很容易想到,但在 onBackPressed()方法中,刚刚隐藏的不用在隐藏,在隐藏反而会没有效果,而且还有注意别的方法里不要再设置。

总结:当webview跳转时,
onProgressChanged……………..
onPageStarted……………………..
onLoadResource……………………
onPageFinished…………………….
大致方法前后是这样,但onLoadResource最后还会再执行一遍,所以这个方法写设置什么的话会从前影响到后。

以上个人理解,如有不对的地方请指教,谢谢。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值