¿Cómo se oculta la animación de ActionBar y mantener las pestañas?
En la versión 5 de la aplicación Google Play Store, desplácese hasta el contenido, ActionBar activado con desplazamiento, pero las pestañas están fijas para subir.
¿Como hacer esto?
- Fragment.onCreateView () no se llama en viewpager después del cambio de configuración
- Android: pestañas sin barra de acción
- Sincronizar dos ViewPagers con OnPageChangeListener
- Mediaplayer responde al segundo clic para pausar
- Cómo establecer el tamaño de ViewPager
ANTES DE DESPLAZAR
DESPUÉS DEL DESPLAZAMIENTO
- Interruptor ViewPager FragmentPagerAdapter
- ViewPager - obtener una vista parcial de la página siguiente
- View Pager - ¿Cómo puedo colocar botones fijos encima de él
- ¿Cómo actualizar el contenido de ViewPager?
- ViewPager con la API de Google Maps v2: vista negra misteriosa
- SwipeRefreshLayout + ViewPager, limitar el desplazamiento horizontal solamente?
- ¿Cómo pasar argumentos de fragmentos mientras se utiliza un paginador de vista con diferentes fragmentos / layouts?
- Crear evento de dragado falso para mover ViewPager alrededor
Como otros han sugerido, utilice ObservableScrollView
desde: https://github.com/ksoichiro/Android-ObservableScrollView
Intente poner la Toolbar
y el SlidingTabStrip
en el mismo contenedor, luego anime el contenedor mientras el usuario desplaza el ObservableScrollView
, por ejemplo:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <com.github.ksoichiro.android.observablescrollview.ObservableListView android:id="@+id/listView" android:layout_height="match_parent" android:layout_width="match_parent"/> <LinearLayout android:id="@+id/toolbarContainer" android:orientation="vertical" android:elevation="10dp" android:background="@color/material_deep_teal_200" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"/> <!--Placeholder view, your tabstrip goes here--> <View android:layout_width="wrap_content" android:layout_height="48dp"/> </LinearLayout> </FrameLayout>
Entonces, cuando se anula el ObservableScrollViewCallbacks
podría hacer algo como esto:
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { toolbarContainer.animate().cancel(); int scrollDelta = scrollY - oldScrollY; oldScrollY = scrollY; float currentYTranslation = -toolbarContainer.getTranslationY(); float targetYTranslation = Math.min(Math.max(currentYTranslation + scrollDelta, 0), toolbarHeight); toolbarContainer.setTranslationY(-targetYTranslation); } @Override public void onUpOrCancelMotionEvent(ScrollState scrollState) { float currentYTranslation = -toolbarContainer.getTranslationY(); int currentScroll = listView.getCurrentScrollY(); if (currentScroll < toolbarHeight) { toolbarContainer.animate().translationY(0); } else if (currentYTranslation > toolbarHeight /2) { toolbarContainer.animate().translationY(-toolbarHeight); } else { toolbarContainer.animate().translationY(0); } }
El elemento onUpOrCancelMotionEvent
consiste en animar el contenedor para evitar que la barra de herramientas sólo se muestre a la mitad o se oculte.
Aquí hay un video de demostración solo para referencia: https://drive.google.com/file/d/0B7TH7VeIpgSQSzZER1NneWpYa1E/view?usp=sharing
Echa un vistazo a estos enlaces (especialmente el segundo enlace):
Android google-play-likes listview
ListView con un encabezado (medio y ocultable)
La respuesta está aquí:
https://github.com/ksoichiro/Android-ObservableScrollView : D
Esta biblioteca es excelente para mi caso y muy otros
Es genial que respondas a tu pregunta por ti mismo). Aquí hay otra pequeña pista: Usa un diseño separado para tus pestañas o inténtalo en tu barra de herramientas y luego tranlsate la barra de herramientas sólo hasta donde puedas ver las pestañas en la parte superior.