Botón de acción flotante que bloquea otros componentes
El nuevo diseño de material de Google recomienda utilizar botones de acción flotante para llamar la atención del usuario sobre la acción principal en esa pantalla. Hay bastantes ejemplos de esto dentro de una vista de lista.
Ahora, suponga que la vista de lista tiene suficientes elementos para llenar la pantalla, haciendo imposible el desplazamiento. Si los elementos de la lista tienen un determinado componente con el que el usuario puede interactuar, por ejemplo un conmutador o una estrella favorita, es posible que el botón de acción flotante esté bloqueando este componente. ¿Cómo debemos manejar este caso?
- Diseño de material Android: eliminar animación de sugerencias
- Android colorControlNormal atributos xml no funciona antes de Lollipop
- ¿Cómo mantener la barra de herramientas fija en la parte superior cuando AppBar colapsa / se expande?
- ¿Cómo implementar el efecto ripple en Android KeyboardView?
- Creación de una aplicación para Android con targetSdkVersion de 25 y minSdkVersion 19
EDIT : Esto en realidad siempre sucede con el último elemento de su lista
- Cómo establecer el tamaño de texto de etiqueta flotante?
- RippleDrawable creada programaticamente se ve diferente de su contraparte xml
- Diseño de material - Barra de herramientas de AppCompat sin mostrar sombra
- Etiqueta flotante Spinner?
- Uso de una barra de soporte para la distribución del teléfono y una barra de acción independiente para el diseño de la tableta
- Cambio de Android Color de sombra de elevación de material
- ¿Qué tamaño deben tener los iconos de Barra de Acción (Barra de herramientas) en el nuevo diseño de Material Android?
- Tema no aplicado con la biblioteca appcompat en algunos dispositivos Android 4.X
Agregar una vista en blanco con la misma altura que el botón flotante en el pie de la lista. Así que cuando se desplaza su lista, el último elemento aparecerá y el botón flotante no ocultará el último elemento de la lista. Esta es una solución simple y rápida.
Acabo de tener este problema ahora, y lo resolví de esta manera:
public void addBlankSpace(ListView listView) { Space space = new Space(listView.getContext()); space.setMinimumHeight(Core.dpToPx(50)); listView.addFooterView(space); }
Y supongo que siempre hay una mejor manera. Como comprobar si incluso lo necesita. Y sólo entonces para mostrarlo. Pero por ahora, este código simple funciona muy bien.
Y aquí está la función de conversión:
public static int dpToPx(int dp) { return (int)(dp * Resources.getSystem().getDisplayMetrics().density); }
O podemos agregar un poco de relleno:
listView.setPadding(0, 0, 0, Core.dpToPx(50));
Al cargar la lista, puede crear un indicador y buscar si el elemento de la lista es el último elemento visible en la pantalla, que ocultar el botón flotante.
Use esto para encontrar el último elemento visible
int currentPosition = list.getLastVisiblePosition();
Obtendrá el último número del item.ie si el último elemento es visible en su lista, que devolverá el valor de currentPosition = 7;
Una vez que usted consiga el número de artículos que caben en su pantalla, ahora compruebe para el indicador
if(listAdapterItemsArray.get(position) == currentPosition) { //hide button } else { //nothing }
Puede establecer la posición del botón de acción de Google en la parte superior izquierda usando
`android:layout_gravity="top|left"`
De esta manera se ve bien y no ocultar nada.
Solo hago lo que creo que está haciendo la aplicación google gmail y agrego relleno al recicladorVer (o listview).
<android.support.v7.widget.RecyclerView android:id="@+id/my_recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" android:paddingBottom="100dp" />
- Cómo detener una sesión en Google mobile analytics v2 para android sin EasyTracker
- Cómo cambiar el color detrás de Android Dialog