21

Die verschachtelte Bildlaufansicht wird beim Scrollen nach unten gerastert, beim Scrollen nach oben ist sie träge. Die Symbolleiste (mit Bildansicht und Rahmenlayout) wird beim Scrollen nicht angezeigt (bleibt leer). Ich habe versucht, jede Flagge in minimaler Symbolleiste.Zusammenklappbare Symbolleiste und verschachtelteScrollansicht, die nicht sanft scrollt

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 

android:id="@+id/coordinatorLayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true"> 


<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:fitsSystemWindows="true" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 

     app:contentScrim="?attr/colorPrimary" 

     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 


     <ImageView 
      android:id="@+id/backdrop" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:minHeight="100dp" 
      android:fitsSystemWindows="true" 
      android:scaleType="centerCrop" 
      android:src="@drawable/pic" 
      app:layout_collapseMode="parallax" 
      app:layout_collapseParallaxMultiplier="0.5" 
      app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"/> 

     <include 
      android:id="@+id/framelayout" 
      layout="@layout/header_layout" 
      app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" 
      android:minHeight="100dp"/> 


    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 


<!-- Your Scrollable View --> 
<android.support.v4.widget.NestedScrollView 
    android:id="@+id/nested" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="fill_vertical" 

    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

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



     </LinearLayout> 



</android.support.v4.widget.NestedScrollView> 


<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="#da1b75" 
    android:orientation="horizontal" 
    android:textColor="#ffffff" 
    android:theme="@style/ThemeOverlay.AppCompat.Light" 
    app:layout_anchor="@id/appbar" 
    app:layout_collapseMode="pin" 
    app:title=""> 



</android.support.v7.widget.Toolbar> 

+0

Bin auch das gleiche Problem – Bytecode

+0

nicht sollte die Symbolleiste in der kollabierenden Symbolleiste Layout sein.? Es sollte nur eine Parallax-Ansicht geben und eine andere Ansicht sollte Symbolleiste in minimalem Symbolleistenlayout sein. Ich denke –

+0

Gibt es komplexe Ansichten in Ihrem NestedScrollView? Läuft Ihr NestedScrollView ohne CoordinatorLayout reibungslos? – sockeqwe

Antwort

0

Ich glaube, Sie vergessen Tag für CoordinatorLayout schließen. Außerdem setzen Symbolleiste auf CollapsingToolbarLayout

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 

android:id="@+id/coordinatorLayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:fitsSystemWindows="true" 

      app:contentScrim="?attr/colorPrimary" 

      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 


      <ImageView 
       android:id="@+id/backdrop" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:minHeight="100dp" 
       android:fitsSystemWindows="true" 
       android:scaleType="centerCrop" 
       android:src="@drawable/pic" 
       app:layout_collapseMode="parallax" 
       app:layout_collapseParallaxMultiplier="0.5" 
       app:layout_scrollFlags="scroll|exitUntilCollapsed" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="#da1b75" 
       android:orientation="horizontal" 
       android:textColor="#ffffff" 
       android:theme="@style/ThemeOverlay.AppCompat.Light" 
       app:layout_anchor="@id/appbar" 
       app:layout_collapseMode="pin" 
       app:title="Your title"> 

      </android.support.v7.widget.Toolbar> 


<!-- What is this for? 

      <include 
       android:id="@+id/framelayout" 
       layout="@layout/header_layout" 
       app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" 
       android:minHeight="100dp"/> 
--> 

     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 


    <!-- Your Scrollable View --> 
    <android.support.v4.widget.NestedScrollView 
     android:id="@+id/nested" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="fill_vertical" 

     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

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



      </LinearLayout> 



    </android.support.v4.widget.NestedScrollView> 

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

Ich war eine ähnliche Probleme mit Layout mit Blick enthält coordinator layout und Fragmente, die RecyclerView enthalten. Ich fügte folgenden Code in CollapsingToolbarLayout hinzu, um glattes Rollen zu machen.

app:layout_scrollFlags="scroll|enterAlways" 
5

Machen Sie das direkte Kind von verschachtelten Scroll anklickbare (sofern Sie ein Layout nicht nur ein untergeordnetes Element haben, fügen Sie und alle Ihre UI-Elemente hineingesteckt und das Layout anklickbar)
android: anklickbare = "true"
Ich war mit ähnlichen Problemen konfrontiert und das funktionierte für mich!

Hier ist der Code, den ich habe auf gearbeitet -

<?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" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="test.testrecycler.MaterialActivity" 
> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:theme="@style/AppTheme.AppBarOverlay" 
    android:fitsSystemWindows="true" 
    > 
    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:contentScrim="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed" 
     app:expandedTitleTextAppearance="@style/expandedappbar" 
     app:collapsedTitleTextAppearance="@style/collapsedappbar" 
     app:statusBarScrim="@color/colorPrimaryDark" 
     > 
     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/sample" 
      android:scaleType="centerCrop" 
      app:layout_collapseMode="parallax" /> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_collapseMode="pin" /> 

    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 

<include layout="@layout/content_material" /> 

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

Und hier ist die Datei content_material.xml mit NestedScrollView.It ein untergeordnetes Element hat (Textview), die klickbare gemacht wurde.

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/content_material" 
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:paddingTop="@dimen/activity_vertical_margin" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="test.testrecycler.MaterialActivity" 
tools:showIn="@layout/activity_material"> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:clickable="true" 
    android:text="This is an association football club formed in 1983, based in the town of Dover, Kent, England. In the 1989–90 season Dover 
    Athletic won the Southern League championship, but failed to gain promotion to the Football Conference as the club's ground did not meet 
    the required standard. Three seasons later the team won the title again and this time gained promotion to the Conference, where they spent 
    nine seasons before being relegated. The club was transferred to the Isthmian League Premier Division in 2004, but another poor season led 
    the club to a further relegation. After three seasons in the Isthmian League Division One South, the club won the championship and promotion 
    back to the Premier Division, and the following season won another championship and promotion to Conference South. In the 2013–14 season, 
    Dover defeated Ebbsfleet United to return to the Conference Premier after a twelve-year absence. Nicknamed the Whites for their white shirts, 
    they have played at the Crabble Athletic Ground since the club's formation. Their best performance in the FA Cup was reaching the third 
    round proper in both the 2010–11 and 2014–15 seasons. (Full article...) 
    Recently featured: Kalki Koechlin Rogue River (Oregon) Operation Ironside 
    Archive By email More featured articles... 
    his time gained promotion to the Conference, where they spent 
    nine seasons before being relegated. The club was transferred to the Isthmian League Premier Division in 2004, but another poor season led 
    the club to a further relegation. After three seasons in the Isthmian League Division One South, the club won the championship and promotion 
    back to the Premier Division, and the following season won another championship and promotion to Conference South. In the 2013–14 season, 
    Dover defeated Ebbsfleet United to return to the Conference Premier after a twelve-year absence. Nicknamed the Whites for their white shirts, 
    they have played at the Crabble Athletic Ground since the club's formation. Their best performance in the FA Cup was reaching the third 
    round proper in both the 2010–11 and 2014–15 seasons. (Full article...)" /> 
</android.support.v4.widget.NestedScrollView> 
0

Es ist sehr einfach. Ich habe viel gekämpft und schließlich ein Problem mit dem hochauflösenden Bild, das ich in src von ImageView platziert hatte, kennengelernt. Lösung: Senken Sie einfach die Auflösung der Bildspeicherungsmaße gleich. (Wahrscheinlich mit Photoshop). Arbeitete für mich