2012-05-04 2 views
0

В моем андроид приложение у меня есть WebView:я не могу прокручивать по вертикали в WebView

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

<WebView 
    android:id="@+id/webView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

</LinearLayout> 

Моя проблема заключается в том, что я не могу прокрутить страницу по вертикали. Горизонтально он работает очень хорошо, но не вертикально. Теперь, если я задал размер android: layout_height для 400dp, например, тогда он работает! но тогда я не могу поддерживать несколько размеров экрана ... любая идея?

+0

Почему вы не устанавливаете WebView в 'fill_parent'? – Adinia

+0

он не работает – Alexis

+0

Ну, я использую RelativeLayout, потому что мне нужны другие элементы рядом с WebView, но должен работать и соответствующий LinearLayout (т. Е. С набором ориентации, как и в ответе Романа Блэка); может быть, это проблема с вашим кодом Java? или с HTML-страницей, которую вы пытаетесь открыть? Попробуйте добавить еще один код в свой вопрос. – Adinia

ответ

2

Добавить

android:orientation="vertical" 

или

android:orientation="horizontal" 

в LinearLayout

+0

не работает ни – Alexis

+1

не работает, потому что LinearLayout не является прокручиваемой компоновкой. Когда вы устанавливаете высоту и ширину в wrap_content, границы webview находятся вне границ LinearLayout. Когда вы устанавливаете ориентацию на макет, также задайте высоту и ширину веб-представления для fill_parent. –

+0

так что бы вы порекомендовали делать то, что я хочу? – Alexis

0

Возможно, вы можете поместить веб-просмотр в виде прокрутки, увеличив высоту до 400 дп, вы устанавливаете его за пределы линейного макета, который создает вид прокрутки. когда страница загружается, линейный макет не учитывает это.

+0

Я попытался заменить линейный макет прокруткой -> не работал. Я также попытался окружить линейный макет (содержащий веб-просмотр) прокруткой, но он тоже не работал. Как бы Вы это сделали? – Alexis

1

Для меня он работал, позволяя JavaScript на WebView. Поэтому я думаю, что есть некоторые проблемы с webkit рендерингом страницы, содержащей javascript, если этот флаг не установлен.

WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled (true);

+0

Хорошо указать на это. В моем случае включение JavaScript заставило прокрутку застревать. Но отключение этого делает страницу бесполезной слишком :( –