我CoordinatorLayout
来自FloatingActionButton
的{{1}},我的布局Design Support Library
FAB
设置为margin_bottom
所以我不# 39; t想要' CoordinatorLayout'在出现50dp
时更高的FloatingActionButton
动画,因为它无论如何都不会被覆盖。
我如何停用SnackBar
,以便CoordinatorLayout
出现时不会移动FloatingActionButton
?
这是我的代码:
SnackBar
答案 0 :(得分:3)
您可以使用自定义CoordinatorLayout.Behavior
public class FloatingActionButtonBehavior extends CoordinatorLayout.Behavior<FloatingActionButton> {
public FloatingActionButtonBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean layoutDependsOn(CoordinatorLayout parent, FloatingActionButton child, View dependency) {
return !(dependency instanceof Snackbar.SnackbarLayout); // here is key idea
}
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, FloatingActionButton child, View dependency) {
float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight());
child.setTranslationY(translationY);
return true;
}
}
答案 1 :(得分:0)
如果你真的想要实现这个目标,你可以从协调器布局中删除FAB,然后根本不应该制作动画。