webview 隐藏toolbar
时间: 2023-09-05 08:11:33 浏览: 386
在 Webview 中隐藏 Toolbar 可以通过以下两种方式实现:
1. 通过 WebChromeClient 来控制 Toolbar 的显示和隐藏,具体实现方式如下:
```java
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
// 隐藏 Toolbar
getSupportActionBar().hide();
}
@Override
public void onHideCustomView() {
super.onHideCustomView();
// 显示 Toolbar
getSupportActionBar().show();
}
});
```
以上代码中的 onShowCustomView() 和 onHideCustomView() 分别是进入和退出全屏模式时的回调函数,我们可以在其中控制 Toolbar 的显示和隐藏。其中 getSupportActionBar() 是获取应用程序的默认 ActionBar。
2. 通过定义一个全屏的主题样式来隐藏 Toolbar,具体实现方式如下:
在 styles.xml 中定义一个全屏的主题样式,如下所示:
```xml
<style name="FullscreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
```
在 AndroidManifest.xml 中将该主题样式应用到 Activity 上,如下所示:
```xml
<activity
android:name=".MainActivity"
android:theme="@style/FullscreenTheme" />
```
以上代码中的 android:windowFullscreen 是设置全屏模式,android:windowContentOverlay 是去掉窗口内容和装饰之间的边框。
在使用这种方式时,Toolbar 会被完全隐藏,无法通过手势等方式显示出来。如果需要显示 Toolbar,可以通过在 Activity 中监听返回键来控制,如下所示:
```java
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (webView.canGoBack()) {
webView.goBack();
return true;
}
// 显示 Toolbar
getSupportActionBar().show();
}
return super.onKeyDown(keyCode, event);
}
```
以上代码中的 onKeyDown() 是监听返回键的回调函数,如果当前 WebView 可以返回上一页,则返回上一页并拦截返回键事件;如果当前已经是第一页,则显示 Toolbar 并退出 Activity。
阅读全文