我正在制作自己的浏览器,我需要帮助。我正在努力挽救它的状态。我尝试了以下方法,但不是我正在寻找的解决方案。
我试过这个:
<activity android:name=".About"
android:configChanges="orientation|keyboard|screenSize" />
Run Code Online (Sandbox Code Playgroud)
但问题是工具栏没有调整大小,因此标题很小,工具栏高度最小(如果我从横向开始并旋转到纵向),标题很大,高度更大(如果我从纵向开始并旋转到纵向)旋转至横向)。
我尝试过的其他事情是
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blah);
if (savedInstanceState != null)
((WebView)findViewById(R.id.webview)).restoreState(savedInstanceState.getBundle("webViewState");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Bundle bundle = new Bundle();
webView.saveState(bundle);
outState.putBundle("webViewState", bundle);
}
Run Code Online (Sandbox Code Playgroud)
但WebView未正确保存。
如何在旋转时保存 webview 状态并且不会出现工具栏大小问题?
如果我处理配置更改并尝试调整工具栏和文本的大小,也许会更好?
您应该将 Webview 状态保存到其自己的 Bundle 中。另外,别忘了打电话super.onSaveInstanceState(outState)。
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blah);
if (savedInstanceState != null)
((WebView)findViewById(R.id.webview)).restoreState(savedInstanceState.getBundle("webViewState"));
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Bundle bundle = new Bundle();
webView.saveState(bundle);
outState.putBundle("webViewState", bundle);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6987 次 |
| 最近记录: |