Вопрос

У меня есть этот макет, и он странно масштабируется (вероятно, из -за неразрешимого гнездования макета), если я не использую FillViewport = true в моем горизонтальсколлвэйв.

Все работает Peachy (за исключением нечетного масштабирования), когда FillViewport = false, но когда FillViewport = true, масштабирование идеально подходит, но прокрутки не происходит.

Это макет (примечание: я знаю, что вы не должны размещать веб -просмотр в ScrollView. Но WebView не имеет SmoothScrollto и не выявляет метод SetScroller, так что ... Bleh.)

<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webContainer"
    android:layout_below="@+id/titlebar"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">
    <WebView 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webZ"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />
</HorizontalScrollView>

Настройка Android: FillViewport = "true" обычно не отключает прокрутку в представлении, не так ли?

Он просто должен быть уверен, что Scrollview заполняет видоперт независимо от размера его содержимого, а? Я думаю, что Viewport - это видимая область экрана, и в Webview определенно больше контента с видимой области, я просто не могу больше прокручивать его.

Я вижу из LogCat, что методы прокрутки называются, они просто не меняют экран. (Если я не установил FillViewport в False.)

Это было полезно?

Решение

Проблема в том, что вы используете «fill_parent», что означает «быть таким же большим, как мой родитель». Вместо этого используйте wrap_content для ширины.

Другие советы

Я сталкиваюсь с аналогичной проблемой со стандартным ScrollView, содержащим веб -просмотр: прокрутка больше не работала. Изменение fill_parent на wrap_content не сработала для меня.

Пример Ромена Гая работает нормально, когда расширенный представление является TextView, но не тогда, когда он заменяется WebView.

Что не работает:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:fillViewport="true">
    <LinearLayout
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:orientation="vertical">
        <WebView android:id="@+id/webview"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:layout_weight="1.0">
        </WebView>
        <Button 
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:text="Click">
        </Button>
    </LinearLayout>     
</ScrollView>

Когда я добавляю небольшое количество данных в WebView, кажется в порядке:

small_data_not_ok1

Но когда я заполняю веб -просмотр большим количеством данных, он не работает, как вы можете видеть ниже:

small_data_not_ok2

Кнопка всегда отображается, а свиток больше не работает. На самом деле, сенсорный свиток не работает, а прокрутка DPAD работает ...

Я не нашел причин для этого, но я нашел обходной путь: он состоял в добавлении линейного уровня, содержащего WebView

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:fillViewport="true">
    <LinearLayout
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:orientation="vertical">
        <LinearLayout android:id="@+id/linearlayout"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical">
            <WebView android:id="@+id/webview"
                android:layout_width="fill_parent" android:layout_height="wrap_content">
            </WebView>
        </LinearLayout>
        <Button 
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:text="Click">
        </Button>
    </LinearLayout>     
</ScrollView>

Теперь это работает нормально:

ok1 ok2

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top