要实现同时滚动RecyclerView和底部按钮,可以采用以下步骤:
<LinearLayout>
<RecyclerView
android:id="@+id/recyclerView"
... />
<Button
android:id="@+id/bottomButton"
... />
</LinearLayout>
RecyclerView recyclerView = findViewById(R.id.recyclerView);
Button bottomButton = findViewById(R.id.bottomButton);
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
// 在这里处理RecyclerView的滚动事件
}
});
bottomButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 在这里处理底部按钮的点击事件
}
});
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition();
int itemCount = layoutManager.getItemCount();
if (lastVisibleItemPosition == itemCount - 1) {
// RecyclerView滚动到底部,将底部按钮滚动到可见区域
bottomButton.setVisibility(View.VISIBLE);
} else {
bottomButton.setVisibility(View.GONE);
}
}
});
bottomButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 滚动RecyclerView到指定位置
recyclerView.scrollToPosition(0);
}
});
通过以上步骤,就可以实现同时滚动RecyclerView和底部按钮的效果。在滚动RecyclerView时,根据需要显示或隐藏底部按钮,并在点击底部按钮时执行相应的操作。
前阵子在一个移动项目中,通过 的方式 绑定click 事件来提交一个表单,由于表单信息比较敏感,于是采用的post 同步提交的方式,原本到也没有什么。后来万恶的PM说 “你这个按钮呀,要固定在底部比较好” ,于是乎就通过 position:fixed 固定到底部了。那么,问题来了 , 在ios 下,虚拟键盘是浮在页面上层的,导致的结果是当键盘收起后,浮在最底部的按钮不在最底下,而跑到中间来了,(极端条件下还可能挡住输入框导致无法输入),并且随着屏幕的滚动而滚动,,(表现类似于absolute) ,,高大上的苹果也是真心坑了一回。
领取专属 10元无门槛券
手把手带您无忧上云