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>
Ответы
Ответ 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>