自定义布局行为
我怎样才能达到底线的这种行为 ? 它的工作方式类似于浮动动作按钮的滚动感知行为,但是当recyckerview滚动到底部时,它会拉动该面板(就像在回收视图中的最后一个元素就是该面板)。 我不认为开发者重复了这些观点。 也许有可能以某种方式扩展行为?
以下是滚动感知行为的代码:
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() } } }
- 我的模型更改时如何重绘Anko frameLayout?
- Kotlin代码如何在Android应用程序中执行,它与Java有什么不同?
- 我可以通过功能参数发送扩展功能吗?
- RxJava操作符用于切换方法
- FragmentManager在Kotlin中抛出IllegalArgumentException
这样做的一个方法是在RecyclerView
上监听滚动事件,并检查最后一个可见的项目,并检查它是否是最后一个。
为此, LinearLayoutManager
有findLastCompletelyVisibleItemPosition()
getItemCount()
, Adapter
getItemCount()
。
- JobScheduler支持比Lolipop更旧的版本
- Kotlin – NoSuchMethodError实例化Throwable时
- 如何将Firebase中的文本文件读取到Android应用程序
- kapt构建失败与匕首Android处理器
- SonarQube:如何将多个质量配置文件应用于一个项目?
- 添加一个Fragment后,Android工作室分解了我的build.gradle文件
- 无法解析:用于电话号码身份验证的com.google.firebase:firebase-auth:11.0.2
- 关联android开发人员认证
- getContentResolver.openInputStream返回一个空的流