将浮动操作按钮保持在布局上方

Keep Floating Actionbutton above Layout

如何在向下滚动时将 FloatingActionbutton 保持在 "blue bottom bar" 上方?条形图是我的 Fragment 的最后一个元素,所以它只需要向上移动几个 dp。

行为应该类似于 Snackbar 行为。

假设 BottomBar 的 ViewHolder 与 Recycler 视图适配器中的其他项目不同。只要 BottomBar 的 viewholder 在 onBindViewHolder 方法中被调用,您就可以创建一个与 FAB 通信的接口。如果是,它会触发,其他一些方法会检查最后一个可见位置是否等于 BottomBar 的位置 例如。

您的适配器

    public class SomeAdapter extends extends RecyclerView.Adapter<SomeAdapter.ViewHolder>{

OnBottomBarBinned onBottomBarBinned;

public interface OnBottomBarBinned{
void binned();
  }

 public SomeAdapter(OnBottomBarBinned onBottomBarBinned){
  this.onBootmBarBinned = onBottomVarBinned;
 }

public static class Viewholder extends RecyclerView.Adapter{

 ViewHolder(View v){
   super(v);
 }

@Override
public void onBindViewHolder(ViewHolder viewHolder,int position){
      if(viewHolder.item.getViewId()==R.id.yourBottomBarId){
        onBottomBarBinned.binned();
   }}

} 


}

然后在连接适配器时

 yourRecyclerView.setAdapter(new SomeAdapter(new OnBottomBarBinned(){
      void binned(){
    if(yourLayoutManager.findLastVisiblePosition==bottomBarPosition){
  yourFab.setTranslationY(someDp);
 }
   else{
   yourFab.setTranslationY(0);
 }

  }});

您使用的是 FrameLayout/ CoordinatorLayout 吗?如果您在 XML 中将 FAB 声明保持在底栏上方,这应该很容易完成。