Я пытался использовать onRetainNonConfigurationInstance (возвращая WebView ), затем возвращая его с getLastNonConfigurationInstance во время onCreate и повторно назначая его.
Кажется, пока не работает. Я не могу помочь, но думаю, что я действительно близко! Пока что я просто получаю пустой / белый фон WebView . Размещать здесь в надежде, что кто-то может помочь протолкнуть это за финишную черту.
Может быть, мне не следует передавать WebView . Возможно, объект из WebView ?
Другой метод, который я пробовал - не мой любимый, - установить это в упражнении:
android:configChanges="keyboardHidden|orientation"
... а тут ничего не делать:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// We do nothing here. We're only handling this to keep orientation
// or keyboard hiding from causing the WebView activity to restart.
}
Это работает, но это не может считаться лучшей практикой .
Между тем, у меня также есть один ImageView , который я хочу автоматически обновлять в зависимости от поворота. Это оказывается очень легко. Под моей папкой res
у меня есть drawable-land
и drawable-port
для хранения вариаций ландшафта / портрета, затем я использую R.drawable.myimagename
для источника ImageView , а Android "делает все правильно" - яй!
... кроме случаев, когда вы наблюдаете за изменениями конфигурации, тогда это не так. (
Так что я в ссоре. Используйте onRetainNonConfigurationInstance и вращение ImageView работает, но WebView постоянство не ... или используйте onConfigurationChanged и WebView остается стабильным, но ImageView не обновляется. Что делать?
Последнее замечание: в моем случае форсирование ориентации не является приемлемым компромиссом. Мы действительно хотим изящно поддержать ротацию. Вроде как, как работает приложение Android Browser! ;)