Проблема с перемоткой в ​​WebView: прокрутка вверх вызывает обновление - PullRequest
0 голосов
/ 18 октября 2019

Когда я прокручиваю вверх в своем приложении для просмотра в Интернете, оно запускает обновление с прокруткой до обновления. Как сделать так, чтобы обновление запускалось только при достижении верхней части страницы? Я видел этот пост об этой конкретной проблеме, но я не мог понять, куда вставить код. Если вы ответите, пожалуйста, уточните, как я реализую код и где Спасибо

1 Ответ

0 голосов
/ 18 октября 2019

Если вы используете только WebView,

, возможно, вам придется использовать этот макет в указанном порядке,

  1. SwipeRefreshLayout 1.1 NestedScrollView 1.1.1 WebView
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/swipeContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

   <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    <WebView
        android:id="@+id/webview1"
        android:layout_width="598dp"
        android:layout_height="1022dp"
        android:layout_marginStart="1dp"
        android:layout_marginTop="1dp"
        android:layout_marginEnd="1dp"
        android:layout_marginBottom="1dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    </androidx.core.widget.NestedScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

А в вашей деятельности

public class WebView1 extends AppCompatActivity {

    SwipeRefreshLayout swipeRefreshLayout;
    WebView browser;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        browser = (WebView) findViewById(R.id.webview1);
        swipeRefreshLayout = (SwipeRefreshLayout)this.findViewById(R.id.swipeContainer);
        browser.setWebViewClient(new WebViewClient());browser.getSettings().setJavaScriptEnabled(true);


        browser.loadUrl("http://www.google.com");

        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                browser.reload();
                swipeRefreshLayout.setRefreshing(false);
            }
        });
    }
}

Если вы копируете этот код, обратите внимание, что я импортирую библиотеки androidx

Чтобы сделать его поддерживающим библиотеки,рассмотрим следующие

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout/>
<androidx.nesv4.widget.NestedScrollView/>

до

<android.support.v4.widget.SwipeRefreshLayout/>
<android.support.v4.widget.NestedScrollView/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...