
рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреЗрдЬ-рджрд░-рдкреЗрдЬ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╡рд┐рд╖рдп рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдХрдореА рдирд╣реАрдВ рд╣реИред
рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рд╕рд╛рдордирд╛ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдмрд╛рд░-рдмрд╛рд░ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЙрдмрд╛рдК рдФрд░ рдЖрд▓рд╕реА рд╣реЛрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рддрд░реАрдХреЗ рд╕реЗ, рдирдпрд╛ рдЬреНрдЮрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдмрд╕ рдЕрдкрдиреЗ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
рдкреГрд╖реНрда рдкрд░ рдЕрдВрдХ рд▓рдЧрд╛рдирд╛
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреГрд╖реНрдард╛рдВрдХрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╕рднреА рдХрд╛рдо рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:
- рд╢реНрд░реЛрддрд╛ рдХреЛ рдкреБрдирд░реНрдирд╡реАрдиреАрдХрд░рдг рджреГрд╢реНрдп рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ;
- рдкреНрд░рд╛рдердорд┐рдХ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ;
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдкрд░ рдХреЙрд▓рдмреИрдХ рдкрдХрдбрд╝реЛ;
- рд╕рднреА рдорджреЛрдВ рдХреЗ рдмрд╛рдж рд╕реВрдЪреА рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рджрд┐рдЦрд╛рдПрдВ;
- рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ;
- рдбреЗрдЯрд╛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреЗрдЬ рдкреЗрдЬрд┐рдВрдЧ рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рд▓реЛрдб рдХрд╛ рдХреЛрдИ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдерд╛ред
рдареАрдХ рд╣реИ, рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдХрдИ рд╕реНрдХреНрд░реАрди рд╣реИрдВ рдЬрд╣рд╛рдВ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдореВрд▓ рдПрдбрд╛рдкреНрдЯрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХрд╛рд░реНрдп рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ?
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХрдИ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХреЛрд░ рдореЙрдбреНрдпреВрд▓ рд╣реИред
рдЪреВрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдкрд╣рд▓реЗ рд╡рд░реНрд╖ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ, рдирддреАрдЬрддрди, рдЗрд╕ рдХрд╛рд░реНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдИ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдЬрдорд╛ рд╣реБрдП рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рд╡рд┐рднрд┐рдиреНрди рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдПрдбреЗрдкреНрдЯрд░ред
рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдПрдХ рдирдпрд╛ рдмреЗрд╕ рдПрдбреЗрдкреНрдЯрд░ рдмрдирд╛рдПрдВ рдЬреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдкреНрд░рдЧрддрд┐ рджрд┐рдЦрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рд╕рднреА рдкреБрд░рд╛рдиреЗ рдПрдбреЗрдкреНрдЯрд░ + рд╕реНрдХреНрд░реАрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ рдЬреЛ рдПрдбреЗрдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╕реНрддреЛрддрд╛ рдпрд╛ рджреГрд╢реНрдп рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рд▓реЛрдб рдХреА рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдХрд╛рдлреА рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдмрдбрд╝реА рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рднреА рдХрдИ рдирдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддреА рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдард╛рдВрдХрди рдХреЗ рд╕рд╛рде рд╕рднреА рд╕реНрдХреНрд░реАрди рдХреЗ рдкреНрд░рддрд┐рдЧрдорди рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдХреНрдпреВрдП рд╡рд┐рднрд╛рдЧ рдкрд░ рдПрдХ рдЙрдЪреНрдЪ рднрд╛рд░ред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдореВрд▓ рд╕рдорд╛рдзрд╛рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрджреЗрд╢ рдореЗрдВ рд▓реЛрдбрд┐рдВрдЧ рдХреА рдкреНрд░рдЧрддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ - рджрд┐рдЦрд╛рдирд╛ рдФрд░ рдЫрд┐рдкрд╛рдирд╛ред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВрдиреЗ
ItemDecoration рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред
рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рдореЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдХрд┐ рднрд╛рд░ рдХрдм рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдФрд░ рдХрдм рдЫрд┐рдкрд╛рдирд╛ рд╣реИ
- рдбреНрд░рд╛рдЗрдВрдЧ рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдЧрддрд┐
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рднреА рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ - рдпрд╛ рддреЛ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА, рдпрд╛ рдмрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рдж рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
ItemDecoration рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЗрдЬрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд▓реЛрдбрд┐рдВрдЧ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?
- рд▓реЛрдб рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдВрдЯ;
- рдЬрдм рд╣рдо рдкреНрд░рдЧрддрд┐ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рддреЛ ItemDecoration рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рдордЭреЗрдВ;
- рдбрд╛рдЙрдирд▓реЛрдб рдЦреАрдВрдЪрдирд╛;
рдорд╛рдВрдЧрдкрддреНрд░
рдХреЛрдИ рднреА рдбреЗрд╡рд▓рдкрд░ рдЬрд┐рд╕рдиреЗ SpacingItemDecoration рдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдмрдирд╛рдпрд╛ рд╣реИ, рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЗрдВрдбреЗрдВрдЯ рдХрд░рдирд╛ рд╣реИред ItemDecoration getItemOffsets рд╡рд┐рдзрд┐ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА:
override fun getItemOffsets(outRect: Rect, view: View, recyclerView: RecyclerView, state: RecyclerView.State) { super.getItemOffsets(outRect, view, parent, state) }
рд╕реВрдЪреА рдХреЗ рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЛрдиреЛрдВ рдУрд░ рдЗрдВрдбреЗрдВрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕реВрдЪреА рдХреЛ рдЕрдВрдд рддрдХ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдЗрдВрдбреЗрдВрдЯ рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореВрд▓реНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдиреАрдЪреЗ рд╕реЗ рдЗрдВрдбреЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ + рдкреНрд░рдЧрддрд┐ рд╕реЗ рд╣реА рдЗрдВрдбреЗрдВрдЯ рдХрд░рддрд╛ рд╣реИред
рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХрд┐ рд╕реВрдЪреА рдиреАрдЪреЗ рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХреА рдЧрдИ рд╣реИ?
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА:
private fun isLastItem(recyclerView: RecyclerView, view: View): Boolean { val lastItemPos = recyclerView.getChildAdapterPosition(view) return lastItemPos == recyclerView.adapter!!.itemCount - 1 }
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ:
override fun getItemOffsets(outRect: Rect, view: View, recyclerView: RecyclerView, state: RecyclerView.State) { super.getItemOffsets(outRect, view, recyclerView, state) when (isLastItem(recyclerView, view)) { true -> outRect.set(Rect(0, 0, 0, 120)) else -> outRect.set(Rect(0, 0, 0, 0)) } } private fun isLastItem(recyclerView: RecyclerView, view: View): Boolean { val lastItemPos = recyclerView.getChildAdapterPosition(view) return lastItemPos == recyclerView.adapter!!.itemCount - 1 }
рдПрдХ рддрд┐рд╣рд╛рдИ рдХрд╛рдо рд╣реЛ рдЧрдпрд╛!
рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдкреНрд░рдЧрддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдЧрддрд┐ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ
ItemDecoration onDrawOver рд╡рд┐рдзрд┐ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА:
override fun onDrawOver(canvas: Canvas, recyclerView: RecyclerView, state: RecyclerView.State) { super.onDrawOver(canvas, recyclerView, state) }
OnDrawOver рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреНрд░рдо рдореЗрдВ onDraw рд╡рд┐рдзрд┐ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред OnDrawOver рд╕рдЬрд╛рд╡рдЯ рдХреЗрд╡рд▓ рд╕реВрдЪреА рдЖрдЗрдЯрдо рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдПрдЧреАред
OnDrawOver рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдореЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдЧрддрд┐ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░, рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЗрдВрдбреЗрдВрдЯ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЗ рдЕрдкрдбреЗрдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирдирд╛ рдЪрд╛рд╣рд┐рдПред
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб:
override fun onDrawOver(canvas: Canvas, recyclerView: RecyclerView, state: RecyclerView.State) { super.onDrawOver(canvas, recyclerView, state) when (showLoading(recyclerView)) { true -> { PaginationProgressDrawer.drawSpinner(recyclerView, canvas) isProgressVisible = true } else -> { if (isProgressVisible) { isProgressVisible = false recyclerView.invalidateItemDecorations() } } } } private fun showLoading(recyclerView: RecyclerView): Boolean { val manager = recyclerView.layoutManager as LinearLayoutManager val lastVisibleItemPos = manager.findLastCompletelyVisibleItemPosition() return lastVisibleItemPos != -1 && lastVisibleItemPos >= recyclerView.adapter!!.itemCount - 1 }
рдбреНрд░рд╛рдЗрдВрдЧ рдкреНрд░рдЧрддрд┐
рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛрдб рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рд▓рд┐рдВрдХ рдореИрдВ рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░реВрдВрдЧрд╛ред
рдореИрдВ рдХреЗрд╡рд▓ рдЙрди рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
рд╕рднреА рдбреНрд░рд╛рдЗрдВрдЧ рдХрд╛ рдХрд╛рдо рдХреИрдирд╡рд╛рд╕ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдкреЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдФрд░ рдЖрд░реНрдХ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдЬреЛ рд╢реБрд░реБрдЖрддреА рдФрд░ рдЕрдВрдд рдХреЗ рдХреЛрдгреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рдпрдорд┐рдд рдкреНрд░реЛрдЧреНрд░реЗрд╕рдмрд╛рд░ рдХреЗ рд╕рдорд╛рди рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛, рдЖрдкрдХреЛ рдПрдХ рдЗрдВрдЯрд░рдкреЛрд▓рд░ рдХрд╛ рдЕрдкрдирд╛ рдПрдирд╛рд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдПрдиреАрдореЗрд╢рди рдЧреИрд░-рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛ рд╕рдХреЗред
рдЗрдВрдЯрд░рдкреЛрд▓рд░реНрд╕ рдХреЗ рдХрд╛рдо рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдПрдиреАрдореЗрд╢рди рд╕реЗ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЙрди рдЧреНрд░рд╛рдл рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдПрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдВрдЯрд░рдкреЛрд▓рд░ рдХреЗ рдХрд╛рдо рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕
рд▓реЗрдЦ рдореЗрдВрдХреЛрдб рд╕рдВрджрд░реНрдн:
PaginationLoadingDecorationPaginationProgressDrawerрдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдПрдХ ProgressDrawer рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ PaginationLoadingDecoration рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдбрд╛рдЙрдирд▓реЛрдб рдбреЗрдореЛ рд╡реАрдбрд┐рдпреЛ:
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ :)