Как я могу реализовать адресную строку прокрутки, чтобы скрыть в WebView? - PullRequest
1 голос
/ 16 марта 2011

Я хочу реализовать адресную строку, например приложение браузера по умолчанию, которое можно скрыть, если пользователь прокручивает веб-страницу вниз и снова отображается, когда пользователь прокручивает веб-страницу вверх, а затем прокручивает вверх.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 11 мая 2012
    try {
        Method m = WebView.class.getMethod("setEmbeddedTitleBar", new Class[] { View.class });
        m.invoke(mWebView, url_bar);
    }
    catch(Exception e) {
    }  

, когда mWebView - это веб-представление (..), а url_bar - это желаемое представление вверху.

редактировать
Подробнее здесь и обратите внимание на комментарии в принятом ответе.

0 голосов
/ 16 марта 2011

установить onTouchListener для вашего веб-просмотра, который проверяет wv.getScrollY (), чтобы увидеть, равен ли он 0. Пример:

mWebView.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent me){
            if(me.getAction() == MotionEvent.ACTION_UP){ //You might try with MotionEvent.ACTION_MOVE also, but you'll get way more calls.
                if(mWebView.getScrollY() == 0){
                    //You are at the top, do what you need to do in order to show your address bar.
                }
            }

            return false;
        }
    });

Этот пример будет работать, если пользователь прокручивает пальцем и отпускает палецполностью наверху.Который не собирается обрабатывать все возможные способы, которыми пользователь прокручивал вверх.Я думаю, что для их обработки идеальным решением является переопределение WebView и добавление в него прослушивателя, который будет отправлять вам вызов всякий раз, когда getScrollY () меняет значение с нуля на любое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...