13

Próbuję zaimplementować najnowsze sztuczki projektowe Google z CoordinatorLayout i mam problemy z przewijaniem i efektem paralaksy.CoordinatorLayout pozostawia puste miejsce na dole po przewinięciu

Po wyświetleniu czynności wszystko wygląda dobrze, ale problem występuje podczas próby przewinięcia. Wygląda na to, że widok z dołu nie jest poprawnie rozwinięty, a po przewinięciu w górę puste miejsce pojawi się poniżej. Widok z dołu wydaje się być duży tylko na podstawie początkowego wyświetlania między widokiem górnym a paskiem nawigacji.

Wygląda to mniej więcej tak:

enter image description here

odpowiedni kod:

<FrameLayout 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"> 

<CoordinatorLayout 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"> 

    <AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <CollapsingToolbarLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      app:expandedTitleMarginStart="72dp" 
      app:expandedTitleMarginEnd="16dp"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:layout_collapseMode="parallax"/> 
     </CollapsingToolbarLayout> 
    </AppBarLayout> 

    <ViewPager 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

</CoordinatorLayout> 
</FrameLayout> 

Ten weird zachowanie dzieje losowo. Czasami widok z dołu można normalnie przewijać, a puste miejsce nie pojawia się. Co ja robię źle? Dzięki.

+0

znalazłeś jakieś rozwiązanie dla tego? – goonerDroid

+0

@goonerDroid, nie zrobiłem tego. Na koniec przestałem używać biblioteki Google'a. – user4386126

+0

Uważam, że jest to zamierzone zachowanie układu koordynatora. Nie jest to jednak pewne. – goonerDroid

Odpowiedz

1

spróbuj dodać Toolbar wewnątrz twój CollapsingToolbarLayout:

<android.support.design.widget.CollapsingToolbarLayout> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:minHeight="?attr/actionBarSize" 
       app:layout_collapseMode="pin"/> 
... 
</android.support.design.widget.CollapsingToolbarLayout> 

także spróbować dodać

androida: minHeight = "? W ciekawy/actionBarSize"

do ToolbarCollapsingToolbarLayout i AppBarLayout

11

miałem ten sam problem i zauważyłem, że każdy układ z tym problemem miał

android:fitsSystemWindows="true" 

na CoordinatorLayout

Usuwanie to ustalone mój problem wszędzie.

+0

nie działa dla mnie –

+0

Ok teraz działa. Używałem 'RecyclerView' zamiast' ViewPager', właśnie stworzyłem 'match_parent'. Teraz działa. –

0

Z powodów flag nawigacyjnych android: fitsSystemWindows = "true" nie spełnia moich potrzeb.

Po pewnym czasie gry stwierdziłem, że dodanie kolejnej opcji CollapsingToolbarLayout z ustawieniem 0dp nie jest łatwe.

<android.support.design.widget.CollapsingToolbarLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    app:layout_scrollFlags="scroll|snap" />