ボトムバーにsuch behaviorを適用するにはどうすればよいですか?フローティングアクションボタンのスクロールを意識した動作のように動作しますが、recyckerビューが下にスクロールすると、そのパネルが引き上げられます(recyclerviewの最後の要素はそのパネルです)。私は、開発者がそれらのビューを複製したとは思わない。何とか行動を拡張することは可能でしょうか?それはRecyclerView
のスクロールイベントを聞くと、最後に表示されるアイテムをチェックし、それが最後の一つだかどうかを確認するためだということのカスタムレイアウトの動作
class ScrollAwareBehavior : CoordinatorLayout.Behavior<View> {
constructor() : super()
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
override fun onStartNestedScroll(coordinatorLayout: CoordinatorLayout?, child: View?, directTargetChild: View?, target: View?, nestedScrollAxes: Int): Boolean {
return nestedScrollAxes==ViewCompat.SCROLL_AXIS_VERTICAL
}
override fun onNestedScroll(coordinatorLayout: CoordinatorLayout?, child: View?, target: View?, dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int) {
super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed)
if (dyConsumed > 0) {
val layoutParams = (child?.layoutParams as? CoordinatorLayout.LayoutParams?)?:return
val fab_bottomMargin = layoutParams.bottomMargin
child?.animate()?.translationY(child.height.toFloat() + fab_bottomMargin)?.setInterpolator(AccelerateDecelerateInterpolator())?.start()
} else if (dyConsumed < 0) {
child?.animate()?.translationY(0f)?.setInterpolator(AccelerateDecelerateInterpolator())?.start()
}
}
}
[This(https://stackoverflow.com/questions/34715732/how-to-scroll-up-down-of-bottom-bar-on-scrolling-of-recyclerview)が助けてくれるかもしれない –
私はすでに達成しているそれ。私は、リストが一番下までスクロールされているときにリストを重ねることなく、そのパネルをどのように表示するかを理解できません。 – user3280437