próbowałam aktualizowania com.android.support:appcompat
i com.android.support:design
z: 25.0.1 do 25.1.0, w następujący sposób:Pływający przycisk akcja nie widoczne na przewijanie po aktualizacji Google Wsparcia & Design Library
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:25.0.1'
do:
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
ale odkryłem, że mój ruchomy przycisk akcji nie pojawia się, gdy aktywność jest przewijana. Moja FAB zachowanie jest określona przez następujący:
public class MyFabBehavior extends FloatingActionButton.Behavior {
public MyFabBehavior(Context context, AttributeSet attrs) {
super();
}
@Override
public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout,
FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) {
// Ensure we react to vertical scrolling
return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL
|| super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, nestedScrollAxes);
}
@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) {
// User scrolled up -> hide the FAB
animateFab(child, View.GONE);
} else if (dyConsumed > 0) {
// User scrolled down -> show the FAB
animateFab(child, View.VISIBLE);
}
}
static public void animateFab(FloatingActionButton fab, int visibility) {
// ignore visibility passed in, and just make fab visible regardless
if (fab.getVisibility() != View.VISIBLE) {
fab.show();
}
}
}
i mój układ jest następujący:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<android.support.v4.widget.NestedScrollView
android:id="@+id/main_scrollview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="8dp" >
...
</android.support.v4.widget.NestedScrollView>
<android.support.design.widget.FloatingActionButton
app:layout_behavior="com.example.MyFabBehavior"
android:id="@+id/fab"
app:fabSize="normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginBottom="@dimen/fab_margin"
android:layout_marginRight="@dimen/fab_margin"
android:onClick="saveButton"
app:elevation="6dp"
app:pressedTranslationZ="12dp"
app:backgroundTint="@color/colorPrimary"
android:src="@drawable/ic_done_white_24dp" />
</android.support.design.widget.CoordinatorLayout>
W 'onCreate()' 'Activity' mojego I mów' hide() 'na' FloatingActionButton', aby zaczął się ukrywać, a następnie pojawiał się podczas przewijania (poprzez zdefiniowane zachowanie).Czy wywołanie 'hide()' ustawia jego widoczność na "GONE" i czy twój fragment kodu sugeruje, że zmienny przycisk akcji jest zignorowany podczas przewijania? Na pewno nie? – drmrbrewer