Подтвердить что ты не робот

Android ScrollView автоматически прокручивается в нижней части окна просмотра

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

это мой код:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:orientation="vertical"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.radikallab.earch.DetailsActivity"
android:background="@drawable/background10">


<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:text="Title"
        android:textStyle="italic"/>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/background4"
        android:id="@+id/iv"/>


    <TextView
        android:id="@+id/rat"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="Title"
        android:textStyle="italic"/>

    <TextView
        android:id="@+id/addr"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="17sp"
        android:text="Title"
        android:textStyle="italic"/>

    <WebView

        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:layout_marginTop="10dp"
        android:id="@+id/webView"
        android:layout_gravity="center_horizontal" />
</LinearLayout>

4b9b3361

Ответ 1

Я также сталкиваюсь с одним и тем же сценарием один раз, но добавив атрибут descendantFocusability в ScrollView, содержащий LinearLayout, решите мою проблему.

android:descendantFocusability="blocksDescendants"

вы можете использовать это как:

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:descendantFocusability="blocksDescendants" >

Ответ 2

Установите android:focusableInTouchMode="true" в линейном макете:

<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:focusableInTouchMode="true"
android:layout_height="match_parent">

Ответ 3

На самом деле я нашел простой ответ для этого, просто добавьте "setfocusable (false)" в связанный файл java..... в этом случае "webview" сначала просматривает его прокрутку... так что добавьте "webview". setfocusable (false) "в связанном классе Javaview.

Ответ 4

Если вы хотите установить это вручную, используя Java; Попробуйте this-, это действительно работает: используйте FOCUS_UP для прокрутки к вершине и FOCUS_DOWN для прокрутки к низу.

scrollView.post(new Runnable() {
                        public void run() {
                            scrollView.fullScroll(View.FOCUS_UP);
                        }

Ответ 5

На самом деле, мы столкнемся с проблемой прокрутки, если дочерний элемент внутри ScrollView поддерживает прокрутку слишком похож на ListView и в вашем случае WebView.

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

См. этот для справки.

Ответ 6

Что сработало для меня, так это сочетание ответов Punit Sharma и FAЯAƸ.

Моей проблемой было прокручиваемое представление (RecyclerView) внутри другого прокручиваемого представления (NestedScrollView) - такое же, как у вашего WebView внутри ScrollView.

Обтекание моего внутреннего прокручиваемого представления внутри FragmentLayout с атрибутом android:descendantFocusability="blocksDescendants" решило мою проблему с автоматической прокруткой вниз.

<androidx.core.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        ....

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:descendantFocusability="blocksDescendants"
            ...>
            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/image_gridview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
       </FrameLayout>

    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>