Webview Höhe wächst unbegrenzt innerhalb eines nestedScrollView

Das ist mein Layout. Wenn ich google.com lade, wächst die Größe des Webviews auf unbestimmte Zeit. Die onSizeChange Funktion des Webviews wird immer aufgerufen und ich kann sehen, dass das Webview sich auf unbestimmte Zeit erweitert. Ich habe versucht, 22.2.1 und 23.1.0 der Design und appcompat Bibliotheken und keine Wirkung.

Irgendeine Lösungsmöglichkeit ? Aufrechtzuerhalten

  • Dynamische Menüs in NavigationView
  • App wird neu gestartet
  • Eingebettete Versionsdetails in android APK
  • Wie man die Tastatur im Dialogfeld ausblenden kann
  • Wie kann man den Bildschirm entsperren, wenn BroadcastReceiver aufgerufen wird?
  • Starten von NFC, wenn der Bildschirm in Android gesperrt ist
  • <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/black"> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <com.example.ajay.scrollabletoolbar.MyWebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true"/> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.AppBarLayout android:id="@+id/appbarlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true"> <android.support.v7.widget.Toolbar android:id="@+id/restricted_browser_toolbar" android:layout_width="match_parent" android:layout_height="?actionBarSize" android:background="@color/colorPrimary" app:layout_scrollFlags="scroll|enterAlways"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF" android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true"> <EditText android:id="@+id/current_url" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerVertical="true" android:backgroundTint="@android:color/darker_gray" android:dropDownAnchor="@+id/restricted_browser_toolbar" android:hint="hint hint" android:imeOptions="actionGo|flagNoExtractUi" android:inputType="textNoSuggestions|textUri" android:paddingBottom="8dp" android:paddingEnd="8dp" android:paddingStart="8dp" android:singleLine="true"/> <ImageView android:id="@+id/clear_url_text" android:layout_width="48dp" android:layout_height="48dp" android:layout_alignRight="@+id/current_url" android:layout_centerVertical="true" android:layout_marginRight="8dp" android:src="@android:drawable/ic_menu_close_clear_cancel" android:visibility="gone"/> </RelativeLayout> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout> 

  • Gibt es eine Möglichkeit, Referenzen für alle derzeit aktiven Fragmente in einer Aktivität zu bekommen?
  • Programmatisch eine Farbe transparenter machen
  • Laden von Bildern in GridView mit Universal Image Loader
  • Android sql - wie bestellt man deine sql query um mehrere säulen
  • Android-Design-Bibliothek 25.1.0 bewirkt, dass FloatingActionButton.Behavior nicht mehr funktioniert
  • Öffnen Sie Android App aus dem Kalender
  • 2 Solutions collect form web for “Webview Höhe wächst unbegrenzt innerhalb eines nestedScrollView”

    In einem Satz kannst du einfach deine WebView nicht in WebView NestedScrollView . Das funktioniert wie beabsichtigt.

    Wenn Sie eine WebView in NestedScrollView (oder ScrollView ) setzen, misst Ihr WebView seine Dimensionen mit View.MeasureSpec.UNSPECIFIED Anforderung. Egal, dass Sie MATCH_PARENT oder sogar feste Größe wie 100dp für die Höhe Ihres WebView . NestedScrollView zwingt seine Kinder, sich mit View.MeasureSpec.UNSPECIFIED Anforderung zu messen. Es passiert alles bei NestedScrollView 's measureChild() Methode. Es geht wie folgt:

     @Override protected void measureChild(View child, int parentWidthMeasureSpec, int parentHeightMeasureSpec) { ViewGroup.LayoutParams lp = child.getLayoutParams(); int childWidthMeasureSpec; int childHeightMeasureSpec; childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec, getPaddingLeft() + getPaddingRight(), lp.width); childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED); child.measure(childWidthMeasureSpec, childHeightMeasureSpec); } 

    Und MeasureSpec.UNSPECIFIED bedeutet, wie sein Label impliziert, kann es sein, was auch immer es will. Ich denke, diese Folie von der "Writing Custom Views für Android" -Sitzung bei Google I / O 2013 wird Ihnen helfen, es zu verstehen.

    Bildbeschreibung hier eingeben

    Eigentlich ist dies ein Problem, das in diesem Thread diskutiert wurde, und nach diesem Google-Ingenieur ,

    Dies ist wie im Desktop, Sie ändern das Browser-Fenster auf Höhe der Seite, so dass es nicht senkrecht scrollen kann. Das Scrollen läuft in NestedScrollView statt Webview selbst. Also eine Konsequenz von keinem js auf der Seite sieht irgendwelche Scroll-Events, also weiß es nicht, dass du bis zum Ende der Seite gescrollt hast, um mehr Inhalt zu laden.

    Also, untere Zeile ist, NICHT setzen Sie Ihre WebView in NestedScrollView . Sie sollten WebView die Web-Seite selbst scrollen lassen. Glückliche Kodierung! 🙂

    Ich entschuldige mich dafür, diese Frage noch nicht zu schließen. Wir können nicht ein Webview in einem nestedScrollView. Aber die Natur eines NSV, es erweitert sein Kind auf seine volle Höhe, so dass es es funktioniert wie erwartet mit Symbolleisten, um zusammenklappbare / scrollbare Symbolleiste etc. zu bekommen. Wenn also Webview hinzugefügt wird, wird das Webview entweder unbegrenzt oder zu einem großen wachsen Wert und damit wird es nicht wie erwartet funktionieren. Dies kann ein Ref: code.google.com/p/android/issues/detail?id=198965 sein

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.