答案 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的底栏上方,则应该可以轻松完成此操作。