Widget - FAB Show/Hide Animation

Animation makeInAnimation = AnimationUtils.makeInAnimation(getBaseContext(), false);

makeInAnimation.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationEnd(Animation animation) { }

    @Override
    public void onAnimationRepeat(Animation animation) { }

    @Override
    public void onAnimationStart(Animation animation) {
        _fab.setVisibility(View.VISIBLE);
    }
});

Animation makeOutAnimation = AnimationUtils.makeOutAnimation(getBaseContext(), true);
makeOutAnimation.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationEnd(Animation animation) {
        _fab.setVisibility(View.INVISIBLE);
    }

    @Override
    public void onAnimationRepeat(Animation animation) { }

    @Override
    public void onAnimationStart(Animation animation) { }
});

// ...

if (_fab.isShown()) {
    _fab.startAnimation(makeOutAnimation);
}

// ...

if (!_fab.isShown()) {
    _fab.startAnimation(makeInAnimation);
}