Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CoordinatorLayoutのBehaviorを使い倒す

HiroYUKI Seto
December 12, 2019

 CoordinatorLayoutのBehaviorを使い倒す

19/12/12
DMM Android勉強会 #3

HiroYUKI Seto

December 12, 2019
Tweet

More Decks by HiroYUKI Seto

Other Decks in Technology

Transcript

  1. $50ࣨ੉ށ༏೭

    $PPSEJOBUPS-BZPVUͷ

    #FIBWJPSΛ

    ࢖͍౗͢

    View Slide

  2. X
    © DMM.com
    w ੉ށ༏೭
    w [email protected]
    w ೥݄ೖࣾ
    w $50ࣨॴଐ
    w ʮೖࣾͨ͠Βطʹొஃ͢Δ͜ͱʹͳ͍ͬͯͨʯ
    ࣗݾ঺հ

    View Slide

  3. X
    © DMM.com
    ࢖͍౗͢

    View Slide

  4. X
    © DMM.com
    ͦͷલʹ

    ࢥ͍ग़͢

    View Slide

  5. X
    © DMM.com
    $PPSEJOBUPS-BZPVUΛ༻ҙ͢Δ
    $PPSEJOBUPS-BZPVUͷࢠ7JFXʹ

    app:layout_behavior ଐੑΛ௥Ճ͢Δ
    Ҏ্ʂ
    $PPSEJOBUPS-BZPVU#FIBWJPS

    View Slide

  6. X
    © DMM.com
    $PPSEJOBUPS-BZPVU#FIBWJPS

    View Slide

  7. X
    © DMM.com

    View Slide

  8. X
    © DMM.com
    $PPSEJOBUPS-BZPVU#FIBWJPS

    View Slide

  9. X
    © DMM.com

    View Slide

  10. X
    © DMM.com
    $PPSEJOBUPS-BZPVUΛ༻ҙ͢Δ
    $PPSEJOBUPS-BZPVUͷࢠ7JFXʹ

    app:layout_behavior ଐੑΛ௥Ճ͢Δ
    Ҏ্ʂ
    $PPSEJOBUPS-BZPVU#FIBWJPS

    View Slide

  11. X
    © DMM.com
    #FIBWJPSͱ͸

    View Slide

  12. X
    © DMM.com
    l*OUFSBDUJPOCFIBWJPSQMVHJOGPSDIJMEWJFXTPG$PPSEJOBUPS-BZPVU
    "#FIBWJPSJNQMFNFOUTPOFPSNPSFJOUFSBDUJPOTUIBUBVTFSDBO
    UBLFPOBDIJMEWJFX5IFTFJOUFSBDUJPOTNBZJODMVEFESBHT
    TXJQFT qJOHT PSBOZPUIFSHFTUVSFTz
    $PPSEJOBUPS-BZPVU#FIBWJPS
    IUUQTEFWFMPQFSBOESPJEDPNSFGFSFODFBOESPJETVQQPSUEFTJHOXJEHFU$PPSEJOBUPS-BZPVU#FIBWJPS

    View Slide

  13. X
    © DMM.com
    w ೚ҙͷ7JFXʹ
    w Կ͔͕ى͖ͨͱ͖ʹ
    w ࢦఆͨ͠7JFXʹ
    w Կ͔Λ͢Δ
    Ͳ͏࢖͏͔
    w layout_behavior Λॻ͍ͨViewͰͳͯ͘΋Α͍
    w %SBH 4XJQF 'MJOH FUD
    w ͜͜Λ࣮૷͢Δ
    w YNMͰBQQlayout_behavior Λॻ͍ͨ7JFX

    View Slide

  14. X
    © DMM.com
    ͳͥࠓ

    View Slide

  15. X
    © DMM.com
    .%$ʹΑͬͯ

    ࠓ

    #FIBWJPS͕೤͍ʂʂ

    View Slide

  16. X
    © DMM.com
    ࡞Δ

    View Slide

  17. X
    © DMM.com
    • layoutDependsOn
    w ೚ҙͷ7JFXͰ͋Δ͔Λฦ͢
    • onDependentViewChanged
    w ೚ҙͷ7JFXͷϨΠΞ΢τ͕มΘΔͱݺ͹ΕΔ
    • onNestedScroll / onNestedFling
    w ର৅ͷ7JFX͕4DSPMM'MJOH͞ΕΔͱݺ͹ΕΔ
    େࣄͳϝιου

    View Slide

  18. X
    © DMM.com
    αϯϓϧϦϙδτϦ
    IUUQTHJUIVCDPNIJSPZVLJTFUPCFIBWJPSTBNQMF

    View Slide

  19. X
    © DMM.com
    class FabRotationBehavior()
    : CoordinatorLayout.Behavior() {
    // xmlͰࢦఆͨ͠ࡍʹݺ͹ΕΔίϯετϥΫλ
    constructor(
    context: Context,
    attrs: AttributeSet
    ) : this()
    }
    ࣮૷ίϯετϥΫλ

    View Slide

  20. X
    © DMM.com
    override fun layoutDependsOn(

    ): Boolean {
    return dependency is NestedScrollingChild2
    }
    ࣮૷PO4UBSU/FTUFE4DSPMM

    View Slide

  21. X
    © DMM.com
    override fun onStartNestedScroll(

    ): Boolean {
    //trueΛฦ͢ͱ onNestedScroll ͕ݺ͹ΕΔ
    return true
    }
    ࣮૷PO4UBSU/FTUFE4DSPMM

    View Slide

  22. X
    © DMM.com
    override fun onNestedScroll(

    dyConsumed: Int

    ) {
    child.rotation += dyConsumed
    }
    ࣮૷PO/FTUFE4DSPMM

    View Slide

  23. X
    © DMM.com
    Ͳ͏࢖͏

    View Slide

  24. X
    © DMM.com
    w ೚ҙͷ7JFXʹ
    w layout_behavior Λॻ͍ͨViewͰͳͯ͘΋Α͍
    w Կ͔͕ى͖ͨͱ͖ʹ
    w %SBH 4XJQF 'MJOH FUD
    w ࢦఆͨ͠7JFXʹ
    w YNMͰBQQlayout_behavior Λॻ͍ͨ7JFX
    w Կ͔Λ͢Δ
    w ͜͜Λ࣮૷͢Δ
    Ͳ͏࢖͏͔

    View Slide

  25. X
    © DMM.com
    w ਌͕$PPSEJOBUPS-BZPVU ඞਢ

    w 7JFXͷϝιουΛୟ͚ͩ͘
    w FYWJFXͷSPUBUJPOΛม͑Δ WJTJCJMJUZΛม͑Δ
    w FY&YUFOEFE'MPBUJOH"DUJPO#VUUPOFYUFOE
    TISJOL

    w Ҡಈ΍มܗ͕ͳ͍Ξχϝʔγϣϯ
    w FY৭ͷมԽɺճసɺ⾩Ͱͳ͍ΞϧϑΝ஋
    w 5SBOTGPSNͷྫ͸ʜ
    #FIBWJPSͷ࢖͍Ͳ͜Ζ

    View Slide

  26. X
    © DMM.com
    w ਌͕$PPSEJOBUPS-BZPVUͰͳ͍৔߹
    w Ξχϝʔγϣϯ͕7JFXʹ࣮૷͞Ε͍ͯͳ͍
    w Ҡಈ΍มܗ͕͋Δ৔߹͸

    #FIBWJPSͰ࣮૷͢ΔΑΓ΋5SBOTJUJPOָ͕
    w 5SBOTJUJPOͱ࣮ͯ͠૷ࡁ͞Ε͍ͯΔ
    w Ҡಈɺมܗɺग़ݱɺফࣦ
    5SBOTJUJPOͷํ͕Α͍ͱ͜Ζ

    View Slide

  27. X
    © DMM.com
    ࢖͍Ͳ͜ΖΛ஌ͬͯ
    ྑ͍#FIBWJPSϥΠϑΛ

    View Slide

  28. X
    © DMM.com
    w ެࣜϦϑΝϨϯε
    w IUUQTEFWFMPQFSBOESPJEDPNSFGFSFODFBOESPJETVQQPSUEFTJHOXJEHFU
    $PPSEJOBUPS-BZPVU#FIBWJPS
    w NBUFSJBMDPNQPOFOUTBOESPJE
    w IUUQTHJUIVCDPNNBUFSJBMDPNQPOFOUTNBUFSJBMDPNQPOFOUTBOESPJEUSFF
    NBTUFSMJCKBWBDPNHPPHMFBOESPJENBUFSJBMUSBOTGPSNBUJPO
    ࢀߟจݙ

    View Slide

  29. X
    © DMM.com
    w %SPJE,BJHJ

    .%$ͷ಺෦࣮૷͔ΒֶͿදݱྗͷߴ͍7JFXͷ࡞Γํ
    ΦϋφγϋπρΫ

    View Slide

  30. ׬

    View Slide