2015-09-15 17 views
10

Ho un problema con questo:Android - CoordinatorLayout/NestedScrollView/Hide-Show Toolbar/Issue con WebView

<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/coordinatorLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways" /> 
    </android.support.design.widget.AppBarLayout> 

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

     <WebView 
      android:id="@+id/webView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </android.support.v4.widget.NestedScrollView> 

</android.support.design.widget.CoordinatorLayout> 

Quando I rotoli in WebView, la barra degli strumenti è nascosto o mostrato (! Perfetto), ma ci è un problema con il caricamento/posizionamento di pagine web. Ad esempio, se si scorre verso il centro di una pagina e faccio clic su un collegamento, la nuova pagina che verrà caricata si troverà a circa metà della pagina anziché in alto. Come se le barre di scorrimento non si muovessero da una pagina all'altra.

se aggiungo alla NestedScrollView:

android:fillViewport="true" 

tutto funziona con la WebView (carico pagine e apparire bene anche se partendo dall'alto), ma perdere la Mostra/Nascondi con la barra degli strumenti :(

avete qualche idea su questo problema

vi ringrazio in anticipo per il vostro aiuto :)

(per informazioni:? Android Supporto alla progettazione Biblioteca : 23.0.1)

Yop

risposta

3

mia ipotesi: Dal momento che si sta mettendo la WebView all'interno di un NestedScrollView lo scorrimento non viene fatto a livello WebView in modo che quando si carica una nuova pagina le NestedScrollView soggiorni nel stessa posizione.

Suggerimento: creare un WebViewClient e sovrascrivere onPageStarted qui si dovrebbe cambiare la posizione NestedScrollView scorrimento per 0:

nestedScrollView.scrollTo(0, 0); 
+1

Sì, per me questo funziona per lo scorrimento verso l'alto, un altro problema è quando saltando web contenuto da webview di altezza elevata a un'altra webview che è un piccolo contenuto, ha un lungo spazio bianco che scorre verso il basso. Puoi suggerire di risolvere questo? Grazie. – Jawaad

+1

@Jawaad ​​sarebbe meglio se apri una domanda separata per il tuo problema, fornisci esempi di codice e descrivi quello che hai già provato. Per quanto riguarda la tua domanda: Vorrei utilizzare il visualizzatore gerarchico per verificare se il problema è la visualizzazione Web non ridimensionamento o il NestedScrollView. Quello che potresti provare è in onPageFinished per chiamare invalidate su NestedScrollView, non so se questo risolverà il problema. – Raanan