私はG +ユーザーからの回答を得ました(クレジットはChristophe Beylsです)!主な活動(またはメインの断片)上のCoordinatorLayout.Behaviorインスタンスを取得
:あなたはすべてのフラグメントのために設定することができますViewPager.OnPageChangeListener
で
public class ScrollAwareFABBehavior extends FloatingActionButton.Behavior {
private boolean mFabUserHidden = false;
// other stuff in here
/**
* Overrides the default FAB show/hide functionality
*
* @param hidden TRUE to stay hidden, false otherwise
*/
public void stayHidden(boolean hidden) {
mFabUserHidden = hidden;
}
@Override
public void onNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);
if (dyConsumed > 0 && !this.mIsAnimatingOut && child.getVisibility() == View.VISIBLE) {
animateOut(child);
} else if (dyConsumed < 0 && !mFabUserHidden && child.getVisibility() != View.VISIBLE) {
animateIn(child);
}
}
// do other stuff
}
:ScrollAwareFABBehavior.javaアドオンで
ファブが可視であるかどうかを判断する。
多分、同じ問題を抱える人を助けるでしょう!
FloatingActionButtonをアクティビティの代わりに1番目のフラグメントに追加することもできますし、2番目のフラグメントを手動で非表示にすることもできます。 – arjunkn
最初のフラグメントに追加すると、ビューページスライドでスライドします。それはガイドラインが言っていることではない:ファブはスライドするビューページのビューで同じ位置にとどまらなければならない! – silversmurf