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

时间:2016-02-24 13:01:34

标签: android android-layout floating-action-button android-snackbar

向下滚动时,如何将FloatingAction按钮保持在“蓝色底栏”上方?该栏是我片段的最后一个元素,所以它只需要向上移动几个dp。

行为应该类似于Snackbar行为。

Example Screenshot

2 个答案:

答案 0 :(得分:0)

假设BottomBar的ViewHolder与您的Recycler视图适配器中的其他项目不同。只要BottomBar的视图符号在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);
 }

  }});

答案 1 :(得分:0)

您使用的是FrameLayout / CoordinatorLayout吗?如果您将FAB声明在XML的底栏上方,则应该可以轻松完成此操作。