Добавить вид в конце Webview - PullRequest
       3

Добавить вид в конце Webview

8 голосов
/ 25 ноября 2010

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

Я хочу добавить пустую область в конце веб-просмотра вAndroid, я пытаюсь установить нижний отступ webview, однако, это не работает.Я знаю, что макет webview - absoluteLayout, который устарел, и я попытался получить всю длину webview и добавить представление в конце, я пытаюсь использовать getContentHeight (), однако высота не совсем корректна, этоне конец веб-просмотра, может быть, из-за изображения или чего-то еще, я не знаю.

Итак, мой вопрос, есть ли способ достичь моей первоначальной цели, которая заключается в добавлении некоторой пустой области в концеwebview?

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 26 ноября 2010

После двух дней поиска в Google и, наконец, я получаю то, что хочу, спасибо xandy, твой метод действительно меня поразил.

Вот мое решение. Я не переопределил метод OnMeasure, вместо этого я переопределил метод computeVerticalScrollRange, Таким образом, это увеличит всю вертикальную длину веб-просмотра. Точно так же, как добавить пустую область в конце.

следующий мой код:

protected int computeVerticalScrollRange() {
         float density = getResources().getDisplayMetrics().density;
         return super.computeVerticalScrollRange()+(int)(60*density);
    }

Еще раз спасибо, xandy.

2 голосов
/ 25 ноября 2010

Я делал нечто подобное раньше, но я думаю, что это должно работать.

  1. Создание пользовательского класса, расширяющего веб-представление (скажем, CustomWebView)

  2. Переопределить при измерении

, например

public void onMeasure(int wspec, int hspec){
    super.onMeasure(wspec, hspec);

    this.setMeasuredDimension(this.getMeasuredWidth(), this.getMeasuredHeight() + 200); // the padding you need. 
}
0 голосов
/ 24 октября 2013

Ни одно из приведенных здесь решений не помогло мне, поэтому я выбрал другой путь: чтобы добиться добавления отступа к содержимому WebView, а не к самому WebView, я сделал это с помощью JavaScript.

Когда страница закончила загрузку, я использовал следующий код:

loadUrl("javascript:document.getElementsByTagName('body')[0].style.paddingBottom='"
    + mPadding
    + "px'");

Вы должны быть осторожны при изменении CSS загружаемой веб-страницы.Это сработало в моем случае.

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