2011-02-05 2 views
10

Я вижу это исключение, спорадически поднимающееся в моем приложении (в дикой природе). WebView используется для отображения jpg (используя возможности масштабирования/прокрутки версии Android/устройство, а не изобретать колесо и делать все вещи отражения).WebView бросает приемник не зарегистрирован: android.widget.ZoomButtonsController

Я понятия не имею, почему это исключение в конечном итоге могло возникнуть. В основном я могу только подумать об ошибке Android.

Что мне делать (все в GUI потоке):.

  • отображения эскиза в качестве предварительного просмотра первого
  • набор getSettings() setBuiltInZoomControls (ложные)
  • когда регулярная картинка загружена, дисплей, . один вместо
  • набор getSettings() setBuiltInZoomControls (истинные)

Почему установка ZoomControls вкл/выкл: T он не должен масштабироваться, поскольку WebView сбрасывает это значение на loadData, как только будет доступно и отображено обычное изображение. Было бы плохой пользовательский опыт.

Пример устройства это происходит: HTC Desire @ htc_wwe/htc_bravo/браво/браво: 2,2/FRF91/226611: пользователь/отпускание клавиши

У меня точно такое же устройство/программное обеспечение, и это никогда не случилось с me ...

Любые идеи?

С уважением, Оливер

+0

Вы когда-нибудь находили решение этого вопроса? – cottonBallPaws

+0

nope ... совершенно не знаю, почему это происходит - и это случается довольно много. – Oliver

+0

Я начал щедрость по моему вопросу, надеюсь, кто-то что-то узнает. http://stackoverflow.com/questions/5267639/how-to-safely-turn-webview-zooming-on-and-off-as-needed – cottonBallPaws

ответ

3

Я не люблю отвечать на себя, но littleFluffyKitty не (только в комментариях).

Решение в How to safely turn WebView zooming on and off as needed

а) создать свой собственный класс WebView

public class MyWebView extends WebView { 

б) добавить в это OnDestroy() метод:

getSettings().setBuiltInZoomControls(true); 

Вот так. Благодаря этому больше не возникает таких исключений.