Haz que Snackbar empuje la vista hacia arriba
¿Hay una manera de hacer que la barra de comida empuje la vista hacia arriba cuando se muestra?
- Android Snackbar NullPointerException en Fragmento
- Biblioteca de soporte de Android Snackbar con longitud indefinida
- Android SnackBar: error al inflar SnackbarLayout
- SnackBar aparecen animación
- En una acción de snackbar, ¿cómo puedo asegurarme de que es seguro borrar de forma permanente un registro borrado por software de la base de datos?
En la actualidad, cuando se muestra la barra de snack, se superpone la vista de abajo por lo que parece que la mitad del botón está cortado, pero quiero que casi "adjustPan" similar a la forma en que el teclado funciona cuando se muestra en la pantalla.
¿Alguien sabe de algunos trucos para lograr esto?
- ¿Cómo puede ajustar Android SnackBar a una posición específica en la pantalla
- Cómo personalizar el diseño de snackBar?
- Android Snackbar se oculta detrás de la interfaz de usuario del sistema
- ¿Podemos realizar 2 acciones diferentes en Snack bar al mismo tiempo en android?
- ¿Cómo puedo cambiar la alineación inicial de Android Snackbar de abajo hacia arriba?
- Envolver la altura del contenido en un SnackBar
- Cómo configurar el color de texto de la barra de ayuda de la biblioteca de soporte a algo que no sea android: textColor?
- Acción Snackbar getView ()
Coloca tu vista dentro de un android.support.design.CoordinatorLayout
<android.support.design.widget.CoordinatorLayout android:id="@+id/coordinator" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true"> <View android:id="@+id/my_view" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_behavior="com.example.FloatingActionButtonBehavior"/> </android.support.design.widget.CoordinatorLayout>
La parte importante aquí es el atributo app: layout_behavior. Aquí está implementando la clase:
public class FloatingActionButtonBehavior extends CoordinatorLayout.Behavior<FloatingActionButton> { public FloatingActionButtonBehavior(Context context, AttributeSet attrs) { } @Override public boolean layoutDependsOn(CoordinatorLayout parent, FloatingActionButton child, View dependency) { return dependency instanceof SnackbarLayout; } @Override public boolean onDependentViewChanged(CoordinatorLayout parent, FloatingActionButton child, View dependency) { float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight()); child.setTranslationY(translationY); return true; } }
Luego, cuando muestres el pase de snackbar la referencia a la CoordinatorLayout:
CoordinatorLayout coordinator = findViewById(R.id.coordinator); Snackbar.make(coordinator, textResId, Snackbar.LENGTH_LONG) .setAction(R.string.accept_ok, new View.OnClickListener() { @Override public void onClick(View v) { } }) .setDuration(Snackbar.LENGTH_INDEFINITE) .show();
Espero que esto te ayudará.
Snackbar encontrará CoordinatorLayout
más cercano como parentView
;
findViewById(R.id.tv_main).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(findViewById(R.id.tv_main), "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); toolbar.getChildAt(1).setVisibility(View.GONE); } }); <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="s" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_marginBottom="200dp" android:layout_height="100dp"> <TextView android:id="@+id/tv_main" android:background="#4b14b1" android:layout_width="100dp" android:layout_height="100dp" /> </android.support.design.widget.CoordinatorLayout> </RelativeLayout>
- Android: ¿Cómo obtener la identificación de contacto por el número de teléfono?
- Estructura del paquete de patrones de Android MVP