web-dev-qa-db-ja.com

マテリアルデザインlayout_scrollFlagsの意味

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>

私のタブの1つはfragmentで、レイアウトにはRecycle Viewがあり、RecycleViewの下にedittextがあります。まずこの旗の意味を知りたい

グーグルは言う:

  • SCROLL_FLAG_ENTER_ALWAYS
  • SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED
    折りたたまれた高さまで最初にスクロールするように戻るビューを変更する「enterAlways」の追加フラグ。
  • SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
    終了時(画面外へのスクロール)、ビューは「縮小」されるまでスクロールされます。
  • SCROLL_FLAG_SCROLL
    ビューは、スクロールイベントに直接関係してスクロールされます。
  • SCROLL_FLAG_SNAP
    スクロール終了時に、ビューが部分的にしか表示されていない場合、スナップされ、最も近いエッジにスクロールされます。

このフラグをランダムに変更し、場合によっては、ツールバーを上にスクロールして編集が表示されるまで編集テキストが消えました。 Googleドキュメントを読みましたが、うまくいきませんでした。簡単な言葉でそれを理解したい。

41
Kenji

私の答えがまだ関連するかどうかはわかりませんが、それでもなお。実際のところ、ドキュメントは物事を理解するのに十分であり、少し遊ぶだけで十分です。
属性内で使用されるスクロールフラグapp:layout_scrollFlagsは、スクロール効果を有効にするために有効にする必要があります。このフラグは、enterAlwaysenterAlwaysCollapsedexitUntilCollapsed、またはsnapとともに有効にする必要があります。

  • enterAlways:上にスクロールすると、ビューが表示されます。このフラグは、リストの一番下からスクロールし、上にスクロールした直後にツールバーを公開したい場合に役立ちます。
  • enterAlwaysCollapsed:通常、enterAlwaysのみが使用される場合、ツールバーは下にスクロールしても拡大し続けます。enterAlwaysが宣言され、minHeightを指定した場合、enterAlwaysCollapsedも指定できます。この設定を使用すると、ビューはこの最小の高さでのみ表示されます。スクロールが最上部に達した場合のみ、ビューは最大の高さまで拡大します
  • exitUntilCollapsed:スクロールフラグが設定されている場合、通常、下にスクロールするとコンテンツ全体が移動します。minHeightとexitUntilCollapsedを指定すると、残りのコンテンツがスクロールを開始する前にツールバーの最小の高さに到達します。そして、画面を終了します
  • snap:このオプションを使用すると、ビューが部分的にのみ縮小された場合の処理​​が決まります。スクロールが終了し、ビューのサイズが元のサイズの50%未満に縮小された場合、このビューは元のサイズに戻ります。サイズがそのサイズの50%より大きい場合、完全に消えます。

これをご覧ください blog 本当に役立つはずです。

78
Yurii Tsap