web-dev-qa-db-fra.com

Conception matérielle layout_scrollFlags significations

Je découvre que nous pouvons utiliser de jolis drapeaux qui font défiler la barre d’outils et même le contenu en utilisant layout_scrollFlags. Dans mon cas, j'ai une disposition comme celle-ci:

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

un de mes onglets est un fragment et sa mise en page a un Recycle View avec edittext sous RecycleView. Tout d'abord, je veux savoir ce que signifie ce drapeau

google dit:

  • SCROLL_FLAG_ENTER_ALWAYS
    Lors de la saisie (défilement à l'écran), la vue défilera lors de tout événement de défilement vers le bas, que la vue défilante défile également ou non.
  • SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED
    Un indicateur supplémentaire pour 'enterAlways' qui modifie la vue renvoyée afin de ne revenir que initialement à sa hauteur réduite.
  • SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
    Lorsque vous quittez (en faisant défiler l'écran), la vue défile jusqu'à ce qu'elle soit "réduite".
  • SCROLL_FLAG_SCROLL
    La vue défilera en relation directe avec les événements de défilement.
  • SCROLL_FLAG_SNAP
    À la fin du défilement, si la vue n’est que partiellement visible, elle sera capturée et défilée jusqu’à son bord le plus proche.

J'ai changé ce drapeau au hasard et, dans certains cas, mon texte d'édition a disparu jusqu'à ce que je fasse défiler la barre d'outils, puis l'option Éditer apparaisse. Je lis des documents Google mais je ne pouvais pas bien le comprendre. Je veux le comprendre en termes simples.

41
Kenji

Je ne sais pas si ma réponse sera toujours pertinente, mais néanmoins. En fait, les documents sont assez pour comprendre les choses, il vous suffit de jouer un peu.
Indicateur de défilement utilisé dans l'attribut app:layout_scrollFlags doit être activé pour que les effets de défilement prennent effet. Cet indicateur doit être activé avec enterAlways, enterAlwaysCollapsed, exitUntilCollapsed ou snap:

  • enterAlways: La vue deviendra visible lors du défilement. Cet indicateur est utile dans les cas de défilement depuis le bas d'une liste et lorsque vous souhaitez exposer la barre d'outils dès que le défilement a lieu.
  • enterAlwaysCollapsed: Normalement, lorsque seul enterAlways est utilisé, la barre d'outils continuera à se développer au fur et à mesure que vous faites défiler l'écran. En déclarant que enterAlways est déclaré et que vous avez spécifié une hauteur minimale, vous pouvez également spécifier enterAlwaysCollapsed. Lorsque ce paramètre est utilisé, votre vue n’apparaît qu’à cette hauteur minimale. Ce n'est que lorsque le défilement atteint le haut de la vue que la vue se développe complètement.
  • exitUntilCollapsed: lorsque l'indicateur de défilement est défini, le défilement vers le bas provoque normalement le déplacement de tout le contenu. En spécifiant minHeight et exitUntilCollapsed, la hauteur minimale de la barre d'outils est atteinte avant que le reste du contenu ne commence à défiler. et sortir de l'écran
  • snap: L'utilisation de cette option déterminera ce qu'il faut faire lorsqu'une vue seulement a été partiellement réduite. Si le défilement prend fin et que la taille de la vue a été réduite à moins de 50% de sa taille d'origine, cette vue revient à sa taille d'origine. Si la taille est supérieure à 50% de sa taille, il disparaîtra complètement.

S'il vous plaît jeter un oeil à cette blog cela devrait être vraiment utile.

78
Yurii Tsap