Android 红米等手机中,WebView返回时onReceivedTitle()不被调用

    开发中发现,WebView的返回时标题居然没有变回原来界面的标题,后来才发现是部分手机会出现的情况,其他手机都是正常的。

  所以第一个思路就是利用一个列表来记录标题,显示的永远是列表最后一个的标题。

 上代码:

private List titleLists = new ArrayList<>() ;  //标题列表

 @Override
    public String getTitle() {
   if(titleLists .size() > 0){
            return titleLists .get(titleLists .size() - 1) ;
        }else {
            return "" ;
        }
    }

在WebChromeClient中:

 @Override
            public void onReceivedTitle(WebView view, String title) {
                titleLists .add(title) ;
            }

 @Override
    public void goBack() {

        if(titleLists .size() > 0){   //返回界面移除旧列表最后一个
            titleLists .remove(titleLists .size() - 1) ;
        }
        super.goBack();
    }

通过以上几个方法,即使返回也可以恢复之前的标题。

 

 

 

你可能感兴趣的:(杂谈)