Animación de botón de acción flotante de Android
Todo lo que quiero es una animación simple, cuando se mueve el scrollview. He intentado alguna solución, pero ninguno de ellos funcionó perfectamente / suavemente. Si me desplácese, quiero ocultar el fabuloso con la diapositiva abajo animación y si no sucede nada después de 2 segundos los demostraciones fabulosos con la diapositiva animación. Sé que es una pregunta básica y aprecio su paciencia.
Gracias por adelantado.
- Android: Iconos estándar android.R.drawable con otro color
- Cómo mover los botones de texto cuando se pulsa el estado
- GetView vs. BindView en un CursorAdapter personalizado?
- Sistema Android Trace
- Cómo conseguir estrellas favoritas
final ScrollView scroll = (ScrollView) v.findViewById(R.id.sw); scroll.setOnTouchListener(new View.OnTouchListener()){ @Override public boolean onTouch(View v, Motionevent event){ int action = event.getAction(); if (action == Motionevent.ACTION_MOVE){ //slide down animation here }else{ new Handler().postDelayed(new Runnable(){ public void run(){ //slide up animation here } }, 2000); } return false; } });
- Cómo ocultar / mostrar el pulgar dibujable en un SeekBar
- Actualizar la interfaz de usuario desde el subproceso
- ¿Qué objeto de diseño se utiliza para producir una ventana emergente "burbuja" en una interfaz de usuario de Android? (No Tostada o Diálogo)
- El relleno no afecta a <shape> en un diseño XML
- ¿Es posible fusionar stickylistviewheader con crisbanes pulltorefresh?
- ¿Por qué necesitamos actualizar la aplicación para móviles?
- ¿Es posible hacer un NumberPicker horizontal?
- Android: técnica para atenuar un campo de edición de texto
Aquí está un tutorial , cómo utilizar el botón FAB con animación de desplazamiento.
Básicamente:
- Utilice la biblioteca de soporte v22.2.1 v4, hay un método
show()
yhide()
que realiza las animaciones de fade-in y fade-out para los botones de acción flotante - Debe colocar su
ScrollView
y el FAB dentro de un CoordinatorLayout. - Establezca el
layout_anchor
FAB en ellayout_anchor
deScrollView's
- Cree una clase y extienda la clase
FloatingActionButton.Behavior
ylayout_behavior
en el atributolayout_behavior
la FAB en la disposición xml -
onStartNestedScroll
su clase de comportamientoonStartNestedScroll
para comprobar que es vertical -
onStopNestedScroll
su clase de comportamientoonStopNestedScroll
para llamar al método dehide()
parámetro child (FAB) en downscroll y postDelay aRunnable
para mostrar el FAB después de 2 segundos
Diseño como:
<android.support.design.widget.CoordinatorLayout ... > <ScrollView android:id="@+id/myList" ... /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" app:layout_anchor="@id/myList" app:layout_behavior="package.CustomScrollAwareBehavior" ... /> </android.support.design.widget.CoordinatorLayout>
Sugiero, también para crear un Handler
en la clase de comportamiento para llamar al método show()
del FAB. Clase de conducta como (no probada):
public class CustomScrollAwareBehavior extends FloatingActionButton.Behavior{ private Handler handler = new Handler(); private FloatingActionButton fab; public CustomScrollAwareBehavior(Context context, AttributeSet attrs) { super(); } @Override public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) { fab = child; return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL || super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, nestedScrollAxes); } Runnable showRunnable = new Runnable() { @Override public void run() { fab.show(); } }; @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 && child.getVisibility() == View.VISIBLE) { handler.removeCallbacks(showRunnable); handler.postDelayed(showRunnable,2000); child.hide(); } } }
- ¿Qué es "implementación" en las dependencias de Kotlin Gradle?
- Adición de un proyecto de estudio android existente al repositorio gitlab