2016-02-09 13 views
19

Dowiedziałem się, że możemy używać fajnych flag, które przewijają zarówno pasek narzędzi, jak i zawartość przy użyciu layout_scrollFlags. W moim przypadku, mam układ tak:Projekt materiału Znaczniki layout_scrollFlags

<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.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <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="snap" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabMode="fixed" 
      app:tabGravity="fill" /> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
</android.support.design.widget.CoordinatorLayout> 

jeden z moich kartach jest fragment i jego układ ma Recycle View z edittext poniżej RecycleView. najpierw chcę wiedzieć, co ta flaga oznacza

google mówi:

  • SCROLL_FLAG_ENTER_ALWAYS
    Wchodząc (przewijając na ekranie) widok przewinie na wszelkie dół przewinąć zdarzenie, niezależnie od tego, czy widok przewijanie jest również przewijanie.
  • SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED
    Dodatkowym flaga dla „enterAlways”, które modyfikuje widok powracającego tylko początkowo przewinąć z powrotem do jej upadku wysokość.
  • SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
    Przy wyjściu (przewijanie od ekranu) widok zostanie przewijana aż do „zwinięte”.
  • SCROLL_FLAG_SCROLL
    Widok będzie przewijany w bezpośrednim związku ze zdarzeniami przewijania.
  • SCROLL_FLAG_SNAP
    Upon a skończywszy przewijania, jeśli widok jest tylko częściowo widoczny następnie zostanie ona pękło i przewijane na to najbliżej krawędzi.

Zmieniłem tę flagę losowo, aw niektórych przypadkach mój tekst do edycji zniknął, dopóki nie przewinąłem paska narzędzi, a następnie pojawiła się edycja. Czytam dokumenty google , ale nie mogłem tego dobrze. Chcę to zrozumieć w prostych słowach.

Odpowiedz

45

Nie wiem, czy moja odpowiedź będzie nadal aktualna, ale niemniej. Właściwie doktorzy są dość dość by zrozumieć rzeczy dookoła, po prostu musicie trochę zagrać.
Flaga przewijania używana w atrybucie app:layout_scrollFlags musi być włączona dla wszystkich efektów przewijania, które zostaną zastosowane. Flaga ta musi być włączony wraz z enterAlways, enterAlwaysCollapsed, exitUntilCollapsed lub snap:

  • enterAlways: Widok staną się widoczne podczas przewijania w górę. Ta flaga jest przydatna w przypadku przewijania od dołu listy i wyświetlania paska narzędzi natychmiast po przewinięciu w górę.
  • enterAlwaysCollapsed: Zwykle, gdy używany jest tylko system EnterAlways, pasek narzędzi będzie nadal się rozszerzać podczas przewijania w dół. Jeśli zostanie zadeklarowany wpis EnterAlways, a użytkownik określił minHeight, można również podać wartość enterAlwaysCollapsed. Gdy to ustawienie jest używane, widok będzie wyświetlany tylko na tej minimalnej wysokości. Tylko wtedy, gdy przewijanie sięga do góry, widok rozszerza się do pełnej wysokości
  • exitUntilCollapsed: Po ustawieniu flagi przewijania, przewijanie w dół powoduje zwykle przesunięcie całej zawartości.Po określeniu wartości minHeight i exitUntilCollapsed zostanie osiągnięta minimalna wysokość paska narzędzi Toolbar, zanim reszta zawartości zacznie się przewijać i wychodzi z ekranu:
  • : Użycie tej opcji określi, co zrobić, gdy widok jest tylko częściowo zredukowany. Jeśli przewijanie zakończy się, a rozmiar widoku zmniejszy się do mniej niż 50% jego oryginału, to ten widok powróci do pierwotnego rozmiaru. Jeśli rozmiar jest większy niż 50% jego rozmiaru, zniknie całkowicie.

Proszę spojrzeć na to blog powinno być naprawdę pomocne.

+0

Nawet "ta" odpowiedź była bardzo pomocna. Dzięki! :) – Dennis

+0

@Dennis NP, z przyjemnością pomogę! –

+0

Post na blogu był pomocny – PerrierCitror

Powiązane problemy