显示基于 HTML 标题的工具栏标题?
Showing Toolbar Title based on HTML title?
我正在尝试为 material 设计中的工具栏设置标题。在正常情况下,我知道我可以使用 mActionBarToolbar.setTitle
。但是,我有一个 WebView
可以打开不同的网页。我可以设置工具栏的标题,它会根据 HTML 页面中的 <title></title>
部分自动更改吗?
我尝试使用下面的代码,但标题变成空的。
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
webView = (WebView) findViewById(R.id.webView);
url = getIntent().getExtras().getString("url");
webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
mToolbar.setTitle(view.getTitle());
}
});
是的,使用WebView.getTitle()
方法获取当前页面的标题
同样要自动更改标题,您可以使用[WebViewClient.onPageFinished(android.webkit.WebView view, java.lang.String url)
](https://developer.android.com/reference/android/webkit/WebViewClient.html#onPageFinished(android.webkit.WebView, java.lang.String))
这样设置:
WebView browser = (WebView)findViewById(R.id.browser);
browser.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
mActionToolbar.setTitle(view.getTitle());
}
});
我正在尝试为 material 设计中的工具栏设置标题。在正常情况下,我知道我可以使用 mActionBarToolbar.setTitle
。但是,我有一个 WebView
可以打开不同的网页。我可以设置工具栏的标题,它会根据 HTML 页面中的 <title></title>
部分自动更改吗?
我尝试使用下面的代码,但标题变成空的。
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
webView = (WebView) findViewById(R.id.webView);
url = getIntent().getExtras().getString("url");
webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
mToolbar.setTitle(view.getTitle());
}
});
是的,使用WebView.getTitle()
方法获取当前页面的标题
同样要自动更改标题,您可以使用[WebViewClient.onPageFinished(android.webkit.WebView view, java.lang.String url)
](https://developer.android.com/reference/android/webkit/WebViewClient.html#onPageFinished(android.webkit.WebView, java.lang.String))
这样设置:
WebView browser = (WebView)findViewById(R.id.browser);
browser.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
mActionToolbar.setTitle(view.getTitle());
}
});