all*_*o86 11 android dismiss floating-action-button snackbar
我想用一个Snackbar.我有一个FloatingActionButton包裹在CoordinatorLayout.当Snackbar显示时,按钮正确向上移动.当它自动关闭时,按钮向下移动.但如果我以Snackbar编程方式解除,按钮不会下降.我的代码很简单:
mSnackbar = Snackbar.make(mCoordinatorLayout, text, Snackbar.LENGTH_LONG)
.setAction(R.string.undo, new View.OnClickListener() {
@Override
public void onClick(View v) {
undoDeleteTasks();
}
});
mSnackbar.show();
Run Code Online (Sandbox Code Playgroud)
FloatingActionButton当以Snackbar编程方式解散时,是否有办法降低移动速度?
小智 16
试试这个:
Snackbar mysnack = Snackbar.make( fab, "Hi, welcome to my app!", Snackbar.LENGTH_LONG );
mysnack.getView().addOnAttachStateChangeListener( new View.OnAttachStateChangeListener() {
@Override
public void onViewAttachedToWindow( View v ) {
}
@Override
public void onViewDetachedFromWindow( View v ) {
fab.setTranslationY( 0 );
}
});
mysnack.show();
Run Code Online (Sandbox Code Playgroud)
new*_*our 12
问题是,在一个中CoordinatorLayout,FAB被移动,因为onDependentViewChanged()当Snackbar动画输入或输出时,它的行为类被调用.
但是,当你调用时Snabackbar.dismiss()不会发生动画.因此没有onDependentViewChanged().因此FAB的运动.
我想知道是否有可能
Farzad119的答案可以说有点脆弱.我的方法 - 虽然也不令人满意 - 是改变FAB上的行为,以便在SnackBar移除时移动FAB :
@Override
public void onDependentViewRemoved(CoordinatorLayout parent, FloatingActionButton child, View dependency) {
super.onDependentViewRemoved(parent, child, dependency);
float translationY = Math.min(0, parent.getBottom() - child.getBottom());
child.setTranslationY(translationY);
}
Run Code Online (Sandbox Code Playgroud)